cpp 鏈結指示

2021-07-24 06:58:46 字數 496 閱讀 9644

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.了解如何實現多引數的 索引指示器 索引指示器並不難使用。它們的用法跟陣列相同。在乙個類內部,你可以按照你的意願來管理一組資料的集合。這些物件可以是類成員的有限集合,也可以是另外乙個陣列,或者是一些...