靜態儲存類別規範
靜態儲存類別規範 static 和 extern 可以套用至物件和函式。 下表將說明可以和不可以使用關鍵字 static 和 extern 的位置。
使用 static 和 extern
建構 |
static 是否可以 使用? |
extern 是否可以 使用? |
---|---|---|
區塊內的函式宣告 |
否 |
是 |
函式的正式引數 |
否 |
否 |
區塊中的物件 |
是 |
是 |
區塊外的物件 |
是 |
是 |
函式 |
是 |
是 |
類別成員函式 |
是 |
否 |
類別成員資料 |
是 |
否 |
typedef 名稱 |
否 |
否 |
使用 static 關鍵字指定的名稱具有內部連結,但類別的靜態成員具有外部連結。 也就是說,它在目前轉譯單位之外不可見。 除非先前定義為具有內部連接,否則使用 extern 關鍵字指定的名稱會具有外部連結。 如需名稱可視性的詳細資訊,請參閱範圍和程式和連結。
注意事項 |
---|
宣告為 inline 且不是類別成員函式的函式,會與宣告為 static 的函式具有相同的連結特性。 |
編譯器尚未遇到其宣告的類別名稱可以在 extern 宣告中使用。 除非已遇到類別宣告,否則無法使用以這類宣告引入的名稱。