我在C99中找到了static
关键字的一个相当奇怪和不熟悉的用法,但在语言规范中找不到,也无法通过实验找到它的含义:
void set(int t[static 10], int size)
{
// do something with t, not important here
for (int i = 0 ; i < size ; ++i) {
t[i] = size + i;
}
}
It compiles and run fine (demo on repl.it)
我的问题是:当应用于数组大小时,static
关键字在C99中的含义是什么?
注意:以下是非法的:
int t5[static 10];
错误:非参数数组声明符中的static或type限定符