個人理解:extern "c"為什麼引入?是因為可移植性,能在c++**中使用c**或在c**中使用c++**。我們都知道同乙個普通的函式在c++編譯器和c編譯器編譯後在符號庫的名字是不同的。我們在c++**中呼叫c函式的話,如果不用extern "c"的話,你呼叫這個函式的話,編譯器是以c++的方式去查詢,所以會提示未定義,必須用extern 「c」的結構,指定呼叫的是c風格的函式,則會以c方式來查詢,才能找到的。
以下是用法總結:
1.如何在c++**中包含標準c標頭檔案?
//c++ **
#include using namespace std;
int main()
//使用c++編譯器編譯的c**
#include int main()
2.如何在c++**中包含非系統c標頭檔案
void printmessage();
#include #include "pro.h"
void printmessage()
extern "c"
;int main()
3.如何修改c標頭檔案,以使之方便的被c++**#include
//__cplusplus只存在於c++編譯器下,注意cplusplus前面有兩個下劃線
#ifdef __cplusplus
extern "c"
;#endif
#include #include "pro.h"
void printmessage()
#include "pro.h"
int main()
4.如何在c++**中呼叫非標準的c函式
void printmessage();
#include #include "pro.h"
void printmessage()
extern "c" void printmessage();//這個宣告告訴c++編譯器,呼叫printmessage是以c的方式呼叫
int main()
5.如何寫出能夠被c**中呼叫的c++函式?
extern "c" void printmessage();//當知道乙個c++函式會被c編譯器呼叫時,可以使用extern 「c」 結構來宣告函式。
pp#include #include "pro.h"
void printmessage()
;#endif
pp#include #include "pro.h"
void printmessage()
{ cout<<"hello world !\n"<
C語言中 extern C 使用
作用 實現c 與c語言的互通性。一 標準標頭檔案的結構 ifndef incvxworksh define incvxworksh ifdef cplusplus 如果採用了c 如下 使用c編譯器 cplusplus是cpp中的自定義巨集,那麼定義了這個巨集的話表示這是一段cpp的 也就是說,上面的...
C 使用extern C 簡單使用
先說一下函式過載,c 之所以會進行函式過載,是因為對函式名進行二次修飾 重新命名 在c檔案中寫好的程式,c 引入過來,卻沒法使用提示 無法連線的外部符號,那是因為c 按照c 的函式命名機制來尋找函式的實現.第一種情況 檔案為 test.h void show 進行了函式宣告檔案 test.c inc...
C語言中 使用方式
域寬 轉換字元 乙個轉換說明以 開始,以轉換字元結尾,域寬部分是可選的,每個轉換說明對應於乙個輸出引數,改引數被轉化換成有轉換說明規定的資料格式後輸出。注 如果 後面是非轉換字元,多數編譯系統將它作為普通字元輸出。域寬說明字元 意義 減號 在指定區域按左對齊方式輸出 沒有減號時為右對齊 加號 輸出正...