C語言中extern的關鍵字用法

2022-05-03 03:51:10 字數 810 閱讀 2737

在c語言中,修飾符extern用在變數或者函式的宣告前,用來說明此變數/函式是在別處定義的,要在此處引用。

1.extern修飾變數的宣告。舉例來說,如果檔案a.c需要引用b.c中變數int v,就可以在a.c中宣告extern int v,然後就可以引用變數v。這裡需要注意的是,被引用的變數v的鏈結屬性必須是外鏈結的(external)的,也就是說a.c要引用到v,不只是取決於在a.c中宣告extern int v,還取決於變數v本身是能夠被引用到的,這涉及到c語言變數的作用域。

2.extern修飾函式宣告。從本質上來講,變數和函式沒有區別,函式名是指向函式二進位制開頭處的指標。如果檔案a.c需要引用b.c中的函式,比如在b.c中的原型是int fun(int mu),那麼就可以在a.c中宣告extern int fun(int mu),然後就能使用fun來做任何事情。就像變數的宣告一樣,extern int fun(int mu)可以放在a.c中任何地方,而不一定非要放在a.c的檔案作用域的範圍中。對其他模組中函式的引用,最常用的方法是包含這些函式宣告的標頭檔案,使用extern和包含標頭檔案來引用函式有什麼區別呢?extern的引用方式比包含標頭檔案要簡潔得多,extern的使用方法是直接了當的,想引用哪個函式就用extern宣告哪個函式。這樣做的乙個明顯好處是,會加速程式的編譯過程(確切的說是預處理)的過程,節省時間,在大型c程式編譯過程中,這種差異是非常明顯的。

3. 此外,extern修飾符可用於指示c或者c++函式的呼叫規範。比如在c++中呼叫c庫函式,就需要在c++程式中用extern "c"宣告要引用的函式。這是給鏈結器用的,告訴鏈結器在鏈結的時候用c函式規範來鏈結,主要原因是c++和c程式編譯完成後在目標**中命名規則不同。

c語言中extern關鍵字

extern關鍵字適用於變數及函式,並且擴充套件了他們的可見性,這也就是它被命名為extern的原因。首先介紹一下宣告 declaration 和定義 definition 的區別 乙個變數或者函式可以宣告任意次數,但只能定義一次。當我們在宣告或定義函式時,會隱藏extern關鍵字。例如,當我們定義...

C語言中extern關鍵字詳解

內容清單 1.用extern宣告外部變數 1 在乙個檔案內宣告的外部變數 2 在多個檔案中宣告外部變數 3 在多個檔案中宣告外部結構體變數 2.用extern宣告外部函式 3.總結 1 用extern宣告外部變數 定義 外部變數是指在函式或者檔案外部定義的全域性變數。外部變數定義必須在所有的函式之外...

C語言中extern關鍵字詳解

內容清單 1.用extern宣告外部變數 1 在乙個檔案內宣告的外部變數 2 在多個檔案中宣告外部變數 3 在多個檔案中宣告外部結構體變數 2.用extern宣告外部函式 3.總結 1 用extern宣告外部變數 定義 外部變數是指在函式或者檔案外部定義的全域性變數。外部變數定義必須在所有的函式之外...