extern用於在多個檔案中間中,定義乙個全域性變數或者函式。可以在其他檔案中使用 extern 來得到乙個已定義的變數或函式的引用。
extern用於函式宣告時,和普通的函式宣告並沒有區別。即extern int foo();和int foo();是一樣的效果的。使用extern更多的是表示該函式在其他檔案中定義。外部定義的函式一般都在 .h 檔案中使用extern關鍵字宣告。
當你需要在多個檔案中,使用乙個全域性變數時,你需要使用extern關鍵字來對全域性變數進行宣告。extern宣告的全域性變數一般放在.**件中。
#ifndef demo1_h
#define demo1_h
extern int a;
#endif
#include "demo.h"
a = 1;
void foo1()
#include "demo.h"
void foo2()
我們在demo1.c和demo2.c中都可以訪問到a這個變數。
注意:變數不可在標頭檔案中定義。因為demo1.c和demo2.c都包含了demo.h,在demo.h定義a,會造成重複定義。但是,也別忘記在乙個檔案中第一變數,否則會造成未定義錯誤。
由於c++生成符號表時,會把函式名和引數進行拼接來生成符號,所以c和c++混用,在鏈結時,會出現符號找不到的情況。此時使用extern 」c「{}來相容c函式。
#ifdef __cplusplus
extern "c"
#endif /* __cplusplus */
C C 中extern關鍵字
extern關鍵字可置於變數或者函式前,以表示變數或者函式的定義在別的檔案中,提示編譯器遇到此變數或函式時,在其它模組中尋找其定義。另外,extern也可用來進行鏈結指定。在介紹外部變數之前,先來看一下什麼是區域性變數。下面是乙個例子。include define maxline 1000 int ...
C C 中extern關鍵字
當extern與 c 一起連用時,如 extern c void fun int a,int b 這就告訴編譯器在編譯fun這個函式名時按著c的規則去翻譯相應的函式名而不是c 的,c 的規則在翻譯這個函式名時會把fun這個名字弄得面目全非,例如 fun abc isdnfsdf 不同編譯器採取的翻譯...
C C 中extern關鍵字詳解
一.extern修飾變數和函式 在c語言中,修飾符extern用在變數或者函式的宣告前,用來說明 此變數 函式是在別處定義的,要在此處引用 extern宣告不是定義,即不分配儲存空間。先來看一段 basic stdy.h ifndef basic stdy h define basic stdy h...