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定義類中的成員...