extern 用法匯集

2021-06-10 05:12:37 字數 802 閱讀 7389

帶有extern的變數,其不用加標頭檔案,編譯器會自動去其他檔案中查詢,並進行呼叫。值得注意的兩點:

(1)帶有初始值的extern宣告,是一種定義;

如:extern int ival=10;//定義變數ival

等同於:int ival=10;

(2)extern宣告必須與其定義分屬於不同的檔案;

如:extern int ival;

int ival=10;

是錯誤的寫法。 1.

extern宣告變數

基本形式:extern int ival;

如:在檔案file_1.cpp中定義:int ival=10;

在檔案file_2.cpp中定義:extern int ival;

那麼file_2.cpp即指file_1.cpp中的ival;

但若file_3.cpp中有int ival=20;結果如何呢?

出現了重定義-雖然我們沒有加任何標頭檔案。筆者程式例子是counter而已。 2.

extern+static用法

解決1中的辦法呢?很簡單在file_3.cpp中有static int ival=20;便可以了。因為加上static後其作用域僅僅是file_3.cpp這個檔案。 3.

extern+const用法

加上const的全域性變數僅僅對其所在檔案有用。在定義時加上extern來說明其為其他檔案所用:

//file_1.cpp

extern const int ival=100;

//file_2.cpp

extern const int ival;

C const用法匯集(摘)

1 最基本的用法 a constint a 100 b的內容不變,b只能是100也就是宣告乙個int型別的常量 define b 100 intconstb 100 和上面作用一樣 b const指標和引用一般用在函式的引數中 int m a 出錯,常量只能用常指標,如下 int c 1 const...

extern用法詳解

1 基本解釋 extern可以置於變數或者函式 前,以標示變數或者函式 的定義在別的檔案中,提示編譯器遇到此變數和函式 時在其他模組中尋找其定義。另外,extern也可用來進行鏈結指定。2 問題 extern 變數 在乙個原始檔裡定義了乙個陣列 char a 6 在另外乙個檔案裡用下列語句進行了宣告...

extern用法詳解

extern可以置於變數或者函式 前,以標示變數或者函式 的定義在別的檔案中,提示編譯器遇到此變數和函式 時在其他模組中尋找其定義。另外,extern也可用來進行鏈結指定。2 問題 extern 變數 在乙個原始檔裡定義了乙個陣列 char a 6 在另外乙個檔案裡用下列語句進行了宣告 extern...