C 中使用C語言 extern c

2021-06-18 00:08:47 字數 1471 閱讀 5031

個人理解: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語言中 使用方式

域寬 轉換字元 乙個轉換說明以 開始,以轉換字元結尾,域寬部分是可選的,每個轉換說明對應於乙個輸出引數,改引數被轉化換成有轉換說明規定的資料格式後輸出。注 如果 後面是非轉換字元,多數編譯系統將它作為普通字元輸出。域寬說明字元 意義 減號 在指定區域按左對齊方式輸出 沒有減號時為右對齊 加號 輸出正...