C語言中的extern關鍵字筆記
以前一直覺得extern是多余的,我定義全局變量,或include進定義了全局變量的h文件,然后在main中使用,這樣在main中可以省略extern定義所需的變量?,F在終于知道extern的作用了,對于兩個不同的源文件,c1.c和c2.c,在c1中定義的int a,在c2不include進c1的前提下,如果要在c2中引用修改a,就必須extern int a來申明下。然后一起交給gcc編譯。
gcc -o outname c1.c c2.c
編譯器在c2中察覺到extern int a;就會在c2以外的文件尋找int a的定義。
以下這篇帖子寫得比較簡介直接:
http://www.cplusplus.com/forum/general/21368/#msg114884
在以下頁面里也提到:
http://zhidao.baidu.com/question/135690736
extern是擴大變量的作用域。常見的是在源文件里定義變量,在頭文件里用extern聲明變量,隨后在需要使用此變量的源文件里包含頭文件即可。
下面也是extern的解釋,比較詳細,但不是原創,找不到源地址,google了幾次發現最早的一篇中顯示的“轉自xx地址”已經失效。。。
http://www.shnenglu.com/C-Student/archive/2008/07/10/55787.html
下面的C++關鍵點頁面中也有提到:
http://dev.firnow.com/course/3_program/c++/cppxl/20081123/152346.html
gcc -o outname c1.c c2.c
編譯器在c2中察覺到extern int a;就會在c2以外的文件尋找int a的定義。
以下這篇帖子寫得比較簡介直接:
http://www.cplusplus.com/forum/general/21368/#msg114884
在以下頁面里也提到:
http://zhidao.baidu.com/question/135690736
extern是擴大變量的作用域。常見的是在源文件里定義變量,在頭文件里用extern聲明變量,隨后在需要使用此變量的源文件里包含頭文件即可。
下面也是extern的解釋,比較詳細,但不是原創,找不到源地址,google了幾次發現最早的一篇中顯示的“轉自xx地址”已經失效。。。
http://www.shnenglu.com/C-Student/archive/2008/07/10/55787.html
下面的C++關鍵點頁面中也有提到:
http://dev.firnow.com/course/3_program/c++/cppxl/20081123/152346.html
posted on 2010-12-28 11:47 yanvenhom 閱讀(454) 評論(0) 編輯 收藏 引用 所屬分類: C/C++