8

我最近遇到了static关键字的新用法。这里是什么static 意思?

void fun(int some_array[static 7]);

编辑:有人可以举一个有用的例子吗?

4

1 回答 1

14

该标准在 6.7.6.3 中说:

将参数声明为“类型数组”应调整为“类型限定指针”,其中类型限定符(如果有)是在数组类型派生的 [ 和 ] 中指定的那些。如果 关键字 static 也出现在数组类型派生的 [ 和 ] 中,则对于函数的每次调用,对应的实际参数的值应提供对至少与指定元素一样多的数组的第一个元素的访问由大小表达式。

这是 C99 中引入的一个特性。所以你有它:some_array必须至少有 7 个元素长。


正如他们所说,没有关键字的新用法就不可能有新标准static

于 2013-02-18T18:05:57.257 回答