從https://www.quora.com/What-are-the-types-of-linkages-in-C-programming應該用外部關鍵字定義一個帶有外部連接的變量嗎?
外部聯動,意味着該變量可以在某處定義 否則你正在使用的文件,這意味着你可以定義 任何其他翻譯單元,而當前的一個內外部(你當在其他 源代碼中定義它時, 將必須使用關鍵字extern。
內部連接,意味着變量必須在 翻譯單元範圍來限定,這意味着它應該或者在包含的庫中的任 來定義,或者在同一文件中的範圍。
無連接,指向默認功能和大括號範圍,例如 定義一個函數內的自動變量,這將使 變量只能在該函數的範圍內訪問。
需要注意的是:
任何全局對象是由外部默認鏈接,您可以通過使用關鍵字static禁用。
默認情況下,任何常量全局對象都是內部鏈接的,您可以使用關鍵字extern禁用該對象。
假設一個全局變量在file1中定義,我想在file2中使用它。
在文件1,應在全局變量與關鍵字
extern
界定?的報價上面似乎自相矛盾:
「你將不得不在其他源代碼定義它時使用的關鍵字爲extern」似乎是說應該。
「默認情況下,任何全局對象都是外部鏈接的」似乎表示不需要。
file2中,我必須聲明全局變量與關鍵字
extern
?
我不認爲這兩種情況都是強制性的。第一句話可能恰好是錯的。讓我檢查std – HuStmpHrrr
一個是外部聯繫,一個是外部聯繫。我認爲有一個不同的。 – Danh
您需要使用'extern'來定義變量的語句不正確。您只需要在引用其他地方定義的變量的文件中使用'extern'。 –