extern的使用例項

2021-09-12 13:40:26 字數 2285 閱讀 8842

利用關鍵字extern,實現全域性變數的共享

extern 變數只能一次定義(宣告定義), 多次宣告

宣告:

extern int a ;

int a ;

(宣告)定義:

extern int a = 0;

int a = 0 ;

一、兩個cpp檔案之間共享===test.cpp===

#includeusing namespace std;

int a = 0; //定義變數

void jisuan(int b) //定義函式

{ a += b;

cout << "test.cpp:"<===main.cpp===

#include using namespace std;

extern int a; //引用test.cpp中的a變數

extern void jisuan(int b); //函式宣告,必須先宣告

int main(int argc, char** ar**) {

jisuan(2); //呼叫後,a=2

cout << "main:" << a<

結果:

二、有標頭檔案的檔案間共享

*****test.h====

#ifndef _test_h_

#define _test_h_

extern int a; //宣告

void jisuan(int b); //函式宣告

#endif

====test.cpp===

#includeusing namespace std;

int a = 0 ; //定義

void jisuan(int b) //定義

{a += b;

cout << "test.cpp:"<====main.cpp===

#include #include"test.h"

using namespace std;

//extern int a = 8; 錯誤,不能多次定義這個全域性變數a

//extern int a ; //包含了標頭檔案,變數和函式則不需要再次宣告,也可以宣告變數,表示其是引用

//extern void jisuan(int);

int main(int argc, char** ar**) {

jisuan(2);

cout << "main:" << a<結果:

三、第二種的修改,在標頭檔案中宣告定義全域性變數

*****test.h====

#ifndef _test_h_

#define _test_h_

int a = 0; //宣告並且定義

void jisuan(int b); //函式宣告

#endif

====test.cpp===

#includeusing namespace std;

extern int a ; //宣告引用

void jisuan(int b) //定義

{a += b;

cout << "test.cpp:"<====main.cpp===

#include #include"test.h"

using namespace std;

int main(int argc, char** ar**) {

jisuan(2);

cout << "main:" << a結果:

extern的簡單使用

extern用在變數宣告中常常有這樣乙個作用 你要在 c檔案中引用另乙個檔案中的乙個全域性的變數,那就應該放在 h中用extern來宣告這個全域性變數。這個關鍵字真的比較可惡,在定義 函式 的時候,這個extern居然可以被省略,所以會讓你搞不清楚到底是宣告還是定義,下面分變數和函式兩類來說 尤其是...

VC中extern的使用

extern為外部連線符號 通常是在定義介面 全域性變數 的時候這樣使用的,這樣的乙個宣告寫在標頭檔案內,供其他檔案包含。這時候extern表示函式的實現部份不在檔案內部,在連線的時候統一由聯結器處理,編譯器通常會假定編譯時候找不到實現部份的函式為extern形式.當然,加了extern也可以在該檔...

C 中extern的使用

來自 1.宣告外部實體 宣告外部全域性變數或物件,一般用於標頭檔案中,表示在其它編譯單元內定義的變數,鏈結時進行外部鏈結,如 1.宣告外部實體 宣告外部全域性變數或物件,一般用於標頭檔案中,表示在其它編譯單元內定義的變數,鏈結時進行外部鏈結,如 extern int ivalue 此時的extern...