array []括号内的static关键字

Pri*_*shi 8 c arrays static function

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

void fun(int some_array[static 7]);
Run Code Online (Sandbox Code Playgroud)

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

cni*_*tar 13

标准在6.7.6.3中说:

参数声明为''类型数组''应调整为''限定指向类型'',其中类型限定符(如果有)是在数组类型派生的[和]中指定的那些.如果 关键字static也出现在数组类型派生的[和]中,那么对于每次对函数的调用,相应的实际参数的值应提供对数组的第一个元素的访问,其中至少有指定的元素数量.按大小表达式.

这是C99中引入的一项功能.所以你有它:some_array必须至少7个元素长.


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

  • "正如他们所说,如果没有关键字"静态"的新用法,就不可能出现新标准,我知道这种感觉很有用. (2认同)