(1)變數
extern int a;//宣告乙個全域性變數a
int a; //定義乙個全域性變數a
extern int a =0 ;//定義乙個全域性變數a 並給初值。
int a =0;//定義乙個全域性變數a,並給初值,
定義只能出現在一處。不管是int a;還是extern int a=0;還是int a=0;都只能出現一次,而那個extern int a可以出現很多次。
當你要引用乙個全域性變數的時候,你就要宣告,extern int a;這時候extern不能省略,因為省略了,就變成int a;這是乙個定義,不是宣告。
(2)函式
由於函式的定義和宣告是有區別的,定義函式要有函式體,宣告函式沒有函式體,所以函式定義和宣告時都可以將extern省略掉。
比如:int fun(void)
定義乙個全域性函式
int fun(void);
我們對它做了個宣告,然後後面就可以用了
加不加extern都一樣
我們也可以把對fun的宣告 放在乙個標頭檔案裡,最後變成這樣
int fun(void);//函式宣告,所以省略了extern,完整些是extern int fun(void);
乙個要使用你的fun()的程式,把這個標頭檔案包含進去,就可以使用這個fun()函式了。
但是,對應的,如果是這個程式要使用全域性變數,那麼要extern 某某變數;不然就成了定義了。
總結下:
對變數而言,如果你想在本原始檔中使用另乙個原始檔的變數,就需要在使用前用extern宣告該變數,或者在標頭檔案中用extern宣告該變數;
對函式而言,如果你想在本原始檔中使用另乙個原始檔的函式,就需要在使用前用宣告該變數,宣告函式加不加extern都沒關係,所以在標頭檔案中函式可以不用加extern。
C語言中extern用法詳解
本文基於vc6.0 編譯器 首先文件結構如下 myextern.h和myextern.c中定義extern函式 main.c中定義main方法,呼叫extern函式 1.第乙個嘗試 myextern.h void print myextern.c void print main.c extern v...
C語言中extern關鍵字詳解
內容清單 1.用extern宣告外部變數 1 在乙個檔案內宣告的外部變數 2 在多個檔案中宣告外部變數 3 在多個檔案中宣告外部結構體變數 2.用extern宣告外部函式 3.總結 1 用extern宣告外部變數 定義 外部變數是指在函式或者檔案外部定義的全域性變數。外部變數定義必須在所有的函式之外...
C語言中extern關鍵字詳解
內容清單 1.用extern宣告外部變數 1 在乙個檔案內宣告的外部變數 2 在多個檔案中宣告外部變數 3 在多個檔案中宣告外部結構體變數 2.用extern宣告外部函式 3.總結 1 用extern宣告外部變數 定義 外部變數是指在函式或者檔案外部定義的全域性變數。外部變數定義必須在所有的函式之外...