statyczny parametr tablicy declarator
void f(int a[static 10]);
static
tutaj jest wskazanie, że parametr a
jest wskaźnikiem int
ale że objet tablicy (gdzie a
jest wskaźnikiem jej pierwszego elementu) ma co najmniej 10
elementów.
Kompilator ma wtedy prawo przyjąć, że argument f
nie jest NULL
i dlatego może wykonywać pewne optymalizacje. gcc
aktualnie nie wykonuje żadnej Optimization (source): „Informacje dostarczane przez statyczny w parametrze declarators tablica nie jest używany do optymalizacji może warto byłoby wykorzystać go w przyszłości w związku z pracami nad prefetching.”
sklasyfikowany w tablicy parametrów declarator
void g(int a[cvr 10]);
wewnątrz g
a
jest CVR wskaźnik int
(CVR jest const
, volatile
lub restrict
kwalifikacyjnych). Na przykład, z const
oznacza to, że a
jest wskaźnikiem const
(tj., Typem (tj. Typem int * const
).
Więc oświadczenie parametr:
T param[cvr e]
jest taka sama jak w deklaracji parametru:
T * cvr param
*parametru tablica declarator
void h(int a[*]);
[*]
w formalnej deklaracji parametru tablicy w deklaracji funkcji (która nie jest częścią definicji funkcji) wskazuje, że formalna tablica jest tablicą o zmiennej długości.
statyczny: http://stackoverflow.com/questions/3430315/purpose-of-static-keyword-in-array-parameter-of-function –
gwiazdka: http://stackoverflow.com/questions/17371645/parameter -of-a-funkcja –