C extern 關鍵字詳解

2021-10-23 05:24:49 字數 945 閱讀 9366

extern關鍵字的用法有如下幾種:

一 . 引入其它檔案中定義的全域性變數或函式(不能是static修飾的,因為static修飾的變數或函式的作用域只存在於當前檔案)

比如 在a.c檔案中定義了乙個全域性變數和函式:

int num =5;

intfunca()

若想在b.c檔案中引用a.c檔案裡的全域性變數與函式,可以在b.c檔案中使用extern來匯入:

extern

int num;

extern

intfunca()

;

這樣就可以在b.c檔案中引用a.c的變數num和函式funca了。

二 . 如果在.cpp裡呼叫了c庫中定義的函式,那麼需要將c庫中的函式使用 extern 「c」 來防止這些函式被c++中的命名重整(name manling)修改名字,造成無法找到對應的c函式。

比如:c庫中定義實現了如下函式:

int

func1

(int x)

;int

func2

(char

*str)

;

如果要在.cpp中使用這些函式,必須通過下面的形式匯入:

extern

"c"int

func1

(int x)

;extern

"c"int

func2

(char

*str)

;

extern

"c"

這樣,c++就不會對extern "c"包含的函式func1,func2進行命名重整了。才能夠根據函式名找到對應的函式。

C extern關鍵字理解

extern是一種 外部宣告 的關鍵字,字面意思就是在此處宣告某種變數或函式,在外部定義。下面的示意圖是我的理解。extern關鍵字的主要作用是擴大變數 函式的作用域,使得其它原始檔和標頭檔案可以復用同樣的變數 函式,也起到類似 分塊儲存 的作用,劃分 如圖所示,在乙個標頭檔案裡做了外部宣告,就能把...

c extern關鍵字的使用

作用 宣告外部符號 使用其他檔案的全域性變數 原始檔 test.c include extern int year 使用extern關鍵字從add.c原始檔中宣告外部符號的全域性變數 int main add.c int year 2022 宣告全域性變數static修飾全域性變數,使得這個全域性變...

關鍵字const詳解

關鍵字const 1 用關鍵字const定義變數指所定義的常量。即恆定的變數,即不可改變的變數。例 const int i 10 此時 i 就是乙個整型的常量,其值不能改變。在c 中如果用const定義乙個物件,那麼物件中的成員變數就是常數,不能改變 只能為初始化的值 如果用const定義類中的成員...