2013-02-18 90 views
7

我最近遇到新的使用static關鍵字。 static這是什麼意思?array []括號內的靜態關鍵字

void fun(int some_array[static 7]); 

編輯:有人可以舉一個例子,其中這可能是有用的?

+0

取自http://hamberg.no/erlend/posts/2013-02-18-static-array-indices.html? – 2013-02-18 18:46:58

回答

12

標準說,在6.7.6.3:

一個參數的聲明爲「應調整至 「」合格指針爲類型「」,其中類型限定符(」「類型的數組」如果有的話)是 在數組類型派生[和]中指定的那些。如果 關鍵字static也出現在數組類型 派生的[和]中,則對於函數的每次調用,相應實際參數的值應提供對數組中第一個 元素的訪問,其中at至少與 尺寸表達式中指定的元素數量一樣多。

這是C99中引入的功能。所以你有它:some_array必須至少有7個元素長。


正如他們所說,如果沒有關鍵字static的新用法,就不會有新的標準。

+2

「正如他們所說,沒有關鍵字'static'的新用法就不可能有新的標準」,我知道這很難。 – paulotorrens 2014-04-30 07:26:15