extern關鍵字的理解

2021-09-11 04:40:58 字數 496 閱讀 4344

宣告物件是乙個外部物件(變數或函式),標識其定義在別的檔案中。會被多個檔案使用的物件通常用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檔案包含了該標頭...