【发布时间】:2013-02-03 06:01:00
【问题描述】:
我最近遇到了static 关键字的新用法。
static 在这里是什么意思?
void fun(int some_array[static 7]);
编辑:有人可以举一个有用的例子吗?
【问题讨论】:
我最近遇到了static 关键字的新用法。
static 在这里是什么意思?
void fun(int some_array[static 7]);
编辑:有人可以举一个有用的例子吗?
【问题讨论】:
标准在 6.7.6.3 中说:
将参数声明为“类型数组”应调整为 ''qualified pointer to type'',其中类型限定符(如果有)是 在数组类型派生的 [ 和 ] 中指定的那些。如果 关键字 static 也出现在数组类型的 [ 和 ] 中 推导,然后对于函数的每次调用, 相应的实际参数应提供对第一个的访问 数组的元素至少与指定的元素一样多 大小表达式。
这是 C99 中引入的一项功能。所以你有它:some_array 必须至少有 7 个元素长。
正如他们所说,没有关键字static 的新用法就不可能有新标准。
【讨论】:
static的新用法就不可能有新标准”,我知道这种感觉。