extern置於變數和函式前,目的是告訴編譯器,遇到此變數或者函式時,當作宣告來對待,去其他模組中尋找定義。
1、extern置於變數前:
例如:在乙個aa.c檔案中定義了乙個陣列:char str[6];
如果想在另外乙個bb.c檔案中引用這個陣列,方法有兩種:
1>建立乙個aa.h檔案,然後將"externchar str;"或者"char str;"加入,這時如果bb.c檔案想引用aa.c中定義的全域性陣列str,可以包含標頭檔案#include「aa.h」
隨後bb.c檔案中就可以正常使用str陣列了。
2>當然也可以不建立aa.h標頭檔案,可以直接在bb.c檔案的開頭,進行宣告:extern char str;
隨後bb.c檔案中就可以正常使用str陣列了。
2、extern置於函式前的情況:(僅僅說明這個函式可能在別的原始檔中定義,沒有其他作用)
情況類似於上述,不過我碰到的大工程**中常用的方法都是將函式的宣告放到xx.h中,哪個檔案要用到此函式,就包含相應的xx.h就可(可能是為了好管理)。
下面兩個檔案宣告沒有明顯區別:
extern int fun(); 和int fun();
extern用法詳解
1 基本解釋 extern可以置於變數或者函式 前,以標示變數或者函式 的定義在別的檔案中,提示編譯器遇到此變數和函式 時在其他模組中尋找其定義。另外,extern也可用來進行鏈結指定。2 問題 extern 變數 在乙個原始檔裡定義了乙個陣列 char a 6 在另外乙個檔案裡用下列語句進行了宣告...
extern用法詳解
extern可以置於變數或者函式 前,以標示變數或者函式 的定義在別的檔案中,提示編譯器遇到此變數和函式 時在其他模組中尋找其定義。另外,extern也可用來進行鏈結指定。2 問題 extern 變數 在乙個原始檔裡定義了乙個陣列 char a 6 在另外乙個檔案裡用下列語句進行了宣告 extern...
extern用法詳解
1 基本解釋 extern可以置於變數或者函式 前,以標示變數或者函式 的定義在別的檔案中,提示編譯器遇到此變數和函式 時在其他模組中尋找其定義。另外,extern也可用來進行鏈結指定。2 問題 extern 變數 在乙個原始檔裡定義了乙個陣列 char a 6 在另外乙個檔案裡用下列語句進行了宣告...