Вынужденный использовать функцию массива переменной длины для моей вспомогательной функции, которая печатает квадратные матрицы, я определил ее следующим образом:
void print_matrix(M, dim)
unsigned dim;
int M[dim][dim];
{
/* Print the matrix here. */
...
Хорошая новость заключается в том, что код работает и имеет параметры в том порядке, в котором я хотел бы, чтобы они были.
Плохая новость заключается в том, что мне пришлось использовать синтаксис объявления функции "старого стиля", чтобы сослаться на еще не объявленный аргумент dim
в объявлении M
, которое, очевидно, считается устарел и опасен .
Есть ли прямой способ сделать то же самое с объявлениями функций "нового стиля" БЕЗ изменения порядка параметров? (А если нет, то считается ли приемлемым использование синтаксиса старого стиля в данной конкретной ситуации?)