宣告物件是乙個外部物件(變數或函式),標識其定義在別的檔案中。會被多個檔案使用的物件通常用extern宣告於標頭檔案中。
用法eg.
extern int var;
宣告物件是乙個外部c語言的物件,告訴編譯器在編譯該物件時按照指定的c語言編譯方式進行編譯
extern "c" int strcmp(const char*, const char*);
復合語句鏈結指示eg.
extern "c"
static表示靜態的全域性物件,分配記憶體的時候被儲存在靜態區,而非堆疊區。
extern用來表示檔案內的全域性物件在其它檔案出現,static用來表示檔案內的全域性物件僅本檔案可見,兩者用法剛好相反。(static在修飾類成員時,還有乙個用法表示物件為類所有)
參見在乙個c++源程式檔案中,怎麼區別static和extern的用法? - 王小軍的回答 - 知乎
c c 中extern關鍵字的理解
基本解釋 extern可以置於變數或者函式前,以標示變數或者函式的定義在別的檔案中,提示編譯器遇到此變數和函式時在其他模組中尋找其定義。此外extern也可用來進行鏈結指定。extern有兩個作用 當它與 c 一起連用時,如 extern c void fun int a,int b 則告訴編譯器在...
extern關鍵字講解
基本解釋 extern可以置於變數或者函式 前,以標示變數或者函式 的定義在別的檔案中,提示編譯器遇到此變數和函式 時在其他模組中尋找其定義。另外,extern也可用來進行鏈結指定。2 問題 extern 變數 在乙個原始檔裡定義了乙個陣列 char a 6 在另外乙個檔案裡用下列語句進行了宣告 e...
extern關鍵字總結
關於extern關鍵字總結 1.extern的變數的原先定義的地方不能有static修飾 2.如果宣告是const int,那麼extern也必須是extern const int 3.兩個.cpp檔案不能定義同乙個變數名 4.標頭檔案基本可以說是不能定義變數的,否則只要有多個cpp檔案包含了該標頭...