Длина массива в параметрах массива
я читаюПрограммирование на C: современный подход К.Н.Кинга, чтобы выучить язык программирования Си и в текущей главе рассказывается о функциях, а также параметрах массива. Объясняется, что можно использовать подобные конструкции для выражения длины параметров массива:
1.
void myfunc(int a, int b, int[a], int[b], int[*]); /* prototype */
void myfunc(int a, int b, int n[a], int m[b], int c[a+b+other_func()]) {
... /* body */
}
2.
void myfunc(int[static 5]); /* prototype */
void myfunc(int a[static 5]) {
... /* body */
}
Итак, вопрос (ы):
а. Являются ли конструкции в примере 1 чисто косметическими или они влияют на компилятор?
б. Этоstatic
Модификатор в этом контексте только косметического характера? что именно это значит и делает?
с. Также возможно объявить параметр массива как этот; и является ли он таким же косметическим, как в примере 1?
void myfunc(int[4]);
void myfunc(int a[4]) { ... }