extern關鍵字


extern關鍵字的用法有如下幾種:

一 引入其它文件中定義的全局變量或函數 (不能是static修飾的,因為static修飾的變量或函數的作用域只存在於當前文件)

比如 在a.c文件中定義了一個全局變量和函數:

  int num = 5;

  int funca()

  {

    ...
  }

若想在b.c文件中引用a.c文件里的全局變量與函數,可以在b.c文件中使用extern來導入:

extern int num;
extern int funca();

這樣就可以在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"
{
     int func1(int x);
     int func2(char *str);     
}

這樣,C++就不會對extern "C"包含的函數func1,func2進行命名重整了。才能夠根據函數名找到對應的函數。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM