extern關鍵字使用方法

extern可以置於變量或者函數前,以標示變量或者函數的定義在別的文件中,提示編譯器遇到此變量和函數時在其他模塊中尋找其定義。此外extern也可用來進行鏈接指定。
      也就是說extern有兩個作用,第一個,當它與"C"一起連用時,如: extern "C" void fun(int a, int b);則告訴編譯器在編譯fun這個函數名時按着C的規則去翻譯相應的函數名而不是C++的,C++的規則在翻譯這個函數名時會把fun這個名字變得面目全非,可能是fun@aBc_int_int#%$也可能是別的,這要看編譯器的"脾氣"了(不同的編譯器採用的方法不一樣),爲什麼這麼做呢,因爲C++支持函數的重載啊,在這裏不去過多的論述這個問題,如果你有興趣可以去網上搜索,相信你可以得到滿意的解釋!
C++支持了分離式編譯(separate compilation)機制,它允許將程序分爲若干個文件,每個文件可被獨立編譯。這樣說明了,當你的程序有很多文件時,修改其中一個文件後不需要將所有文件都重新編譯一遍,只需要編譯修改過的就好,然後將它們都鏈接起來。
  下面僅說明第一個作用

      在.cpp文件中定義變量,在.h文件中聲明變量加extern,如果其他文件中需要訪問變量,只需包含其頭文件就可以了。

     舉例:

     aa.h 

     extern int mm;

    aa.cpp

     int mm = 1; 

    在bb.cpp中訪問變量mm

    bb.cpp 

   #include "aa.h" 

   int res = 0; 

   mm++; 

  res = mm; 

  cout<<res<<endl; 輸出:2

發佈了34 篇原創文章 · 獲贊 18 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章