如何在C 中呼叫C程式?

2021-07-27 06:27:28 字數 703 閱讀 1342

c++和c是兩種完全不同的編譯鏈結處理方式,如果直接在c++裡面呼叫c函式,會找不到函式體,報鏈結錯誤。要解決這個問題,就要在 c++檔案裡面顯示宣告一下哪些函式是c寫的,要用c的方式來處理。

1.引用標頭檔案前需要加上 extern 「c」,

如果引用多個,那麼就如下所示

extern 「c」

;然後在呼叫這些函式之前,需要將函式也全部宣告一遍。

2.c++呼叫c函式的方法,將用到的函式全部重新宣告一遍

c++程式中呼叫被c編譯器編譯後的函式,為什麼要加extern "c"?

c++語言支援函式過載,c語言不支援函式過載。函式被c++編譯後在庫中的名字與c語言的不同。假設某個c 函式的宣告如下:

void foo(int x, int y);

該函式被c 編譯器編譯後在庫中的名字為_foo,而c++編譯器則會產生像_foo_int_int之類的名字用來支援函式過載和型別安全連線。由於編譯後的名字不同,c++程式不能直接呼叫c 函式。c++提供了乙個c 連線交換指定符號extern「c」來解決這個問題。例如:

extern 「c」

或者寫成

extern 「c」

這就告訴c++編譯譯器,函式 foo 是個c 連線,應該到庫中找名字_foo 而不是找_foo_int_int。c++編譯器開發商已經對c 標準庫的標頭檔案作了extern「c」處理,所以我們可以用#include 直接引用這些標頭檔案。

如何在C 中呼叫C程式

c 和c是兩種完全不同的編譯鏈結處理方式,如果直接在c 裡面呼叫c函式,會找不到函式體,報鏈結錯誤。要解決這個問題,就要在 c 檔案裡面顯示宣告一下哪些函式是c寫的,要用c的方式來處理。1.引用標頭檔案前需要加上 extern c 如果引用多個,那麼就如下所示 extern c 然後在呼叫這些函式之...

如何在C 中呼叫C程式?

c 和c是兩種完全不同的編譯鏈結處理方式,如果直接在c 裡面呼叫c函式,會找不到函式體,報鏈結錯誤。要解決這個問題,就要在 c 檔案裡面顯示宣告一下哪些函式是c寫的,要用c的方式來處理。1.引用標頭檔案前需要加上 extern c 如果引用多個,那麼就如下所示 extern c 然後在呼叫這些函式之...

如何在C 中呼叫C程式?

c 和c是兩種完全不同的編譯鏈結處理方式,如果直接在c 裡面呼叫c函式,會找不到函式體,報鏈結錯誤。要解決這個問題,就要在 c 檔案裡面顯示宣告一下哪些函式是c寫的,要用c的方式來處理。1.引用標頭檔案前需要加上 extern c 如果引用多個,那麼就如下所示 extern c 然後在呼叫這些函式之...