extern
如果現在有乙個c靜態庫和相應的標頭檔案,內含函式void eat(int, int),在c靜態庫中用彙編**表示為:
_sub_eat_:
//...
//...
ret
如果c++鏈結器去link這個函式的時候,按照c++處理函式的規則,去link子過程_sub_eat_int_int_,顯然找不到,報link error,為了解決c++ link c lib時出現的這種link error,c++引入了extern的新用法,鏈結指示符
extern "c"
extern "c"告訴c++編譯器,在link eat的時候,按照c的函式規則,因此link子過程_sub_eat,此時就能找到,不會出現link error
extern "c"可以鏈結單個函式宣告,鏈結多個函式宣告,鏈結#include(相當於鏈結標頭檔案中的所有函式宣告)
鏈結指示符extern C
程式設計師用鏈結指示符linkage directive 告訴編譯器該函式是用其他的程式語言 編寫的鏈結指示符有兩種形式既可以是單一語句single statement 形式也可以是復 合語句compound statement 形式 單一語句形式的鏈結指示符 extern c void exit ...
cpp知識點參考鏈結
關於聯合體union的解釋 智慧型指標之 scoped ptr muduo庫c 11版本中用unique ptr替換支援 智慧型指標相關 c stl 中 remove 和 erase 的區別 指標容器 boost ptr vector ptr container 關於inline函式 為什麼在c 中...
索引指示器
索引指示器 其目的包括 1.了解什麼是 索引指示器 2.如何實現 索引指示器 3.過載 索引指示器 4.了解如何實現多引數的 索引指示器 索引指示器並不難使用。它們的用法跟陣列相同。在乙個類內部,你可以按照你的意願來管理一組資料的集合。這些物件可以是類成員的有限集合,也可以是另外乙個陣列,或者是一些...