外部
物件和變數宣告為extern宣告另一個轉譯單位中,或為具有外部連結封閉範圍中定義的物件。
宣告的 const 變數extern的儲存類別會強制要有外部連結的變數。 初始化 extern const 中定義的轉譯單位允許的變數。 在轉譯單元,而非定義的轉譯單位中的初始設定會產生未定義的結果。
下列程式碼會顯示兩個extern宣告, DefinedElsewhere (其參照的不同的轉譯單位中定義的名稱) 和DefinedHere (可參考封閉範圍中定義的名稱):
// external.cpp
// defined in another translation unit
extern int DefinedElsewhere;
int main() {
int DefinedHere;
{
// refers to DefinedHere in the enclosing scope
extern int DefinedHere;
}
}