c語言extern詳解

2021-06-08 09:19:07 字數 891 閱讀 7911

(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宣告外部變數 定義 外部變數是指在函式或者檔案外部定義的全域性變數。外部變數定義必須在所有的函式之外...