儲存類別
函式定義中的儲存類別規範可以讓函式可能是extern或靜態的儲存類別。
語法
函式定義:
宣告規範選擇屬性 seq 選擇宣告子宣告清單選擇複合陳述式/ * 屬性 seq 為 Microsoft 特定 * /
宣告規範:
儲存類別規範的宣告規範opt型別規範的宣告規範opt
型別限定詞的宣告規範opt
儲存類別規範: / * 的函式定義 * /
externstatic
如果函式定義不包括儲存類別規範,儲存類別的預設值為extern。 您可以明確地宣告一個函式extern,但這並非必要條件。
如果函式宣告包含儲存類別規範 extern,識別項必須與任何看得見的宣告具有檔案範圍識別項相同的連結。 如果沒有看到宣告具有檔案範圍,則識別項有外部連結。 如果識別項具有檔案範圍] 和 [否儲存類別規範,識別項有外部連結。 外部連結表示識別項的每個執行個體表示的同一個物件或函式。 請參閱生命週期、 範圍、 可見性和連結如需有關連結和檔案的範圍。
區塊範圍函式宣告,以儲存類別規範不是extern產生錯誤。
函式與靜態只能在定義它的原始程式檔中為可見的儲存類別。 所有其他函數,是否授與他們extern的儲存類別明確或隱含的會顯示在整個程式中的所有原始程式檔。 如果靜態想要儲存類別時,它必須宣告和函式定義上宣告 (如果有的話) 的函式的第一個項目。
Microsoft 專有的
無儲存類別的 Microsoft 擴充功能啟用時,原本宣告的函式 (或與extern的儲存類別) 都可以靜態存放類別函式定義是否位於相同的原始程式檔,並定義明確指定靜態儲存類別。
在編譯時用 /Ze 編譯器選項,using 區塊內宣告的函式extern關鍵字擁有全域可視性。 這不是,則為 true 以 /Za 編譯時。 這項功能應該不依賴如果來源程式碼的可攜性的考量。
結束 Microsoft 特定