程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++調用C鏈接庫具體應用技巧講解

C++調用C鏈接庫具體應用技巧講解

編輯:C++入門知識

C++編程語言的應用范圍非常廣泛,應用方式靈活,它能夠支持多種程序設計風格,幫助我們輕松解決許多問題。比如今天為大家介紹的C++調用C鏈接庫具體操作方法,就是一個比較經典的例子,可以讓大家充分了解到其中的概念。

  • C++產生隨機數具體實現方法詳解
  • C++鏈表操作實際應用技巧分享
  • C++運行機制簡單介紹
  • C++循環語句基本概念詳解
  • C++類成員相關應用方法介紹

C++調用C鏈接庫,其實相對C調用C++。因為C++本來就向下兼容C吧個人見解)。

但由於編譯器的設計不同,會出現一些問題,如下:如中間部分,有一句undefined reference to 'helloC()' ,helloC()是我在C鏈接庫中的函數)

簡單說來原因就是未經處理的C代碼編譯後函數名可能變為_helloC()之類的,而C++編譯後函數名卻不是這樣,所以就對不上。

需要在include C的文件的時候加上extern "c"

在練習中,寫了三個文件:c.h c.c cpp.cpp 前兩個編譯為C鏈接庫,cpp.cpp使用C。驗證了C++調用C鏈接庫可以訪問到C的全局變量。

c.h:

  1. #include "stdio.h"  
  2. void helloC();  
  3. int abc = 1; 

c.c:

  1. #include <stdio.h> 
  2. #include "c.h"  
  3. void helloC(){  
  4. printf("I am Kenko");  

cpp.cpp:(重點在於如何include)

  1. #include <iostream> 
  2. using namespace std;  
  3. extern "C" {  
  4. #include "c.h"  
  5. }  
  6. int main(){  
  7. helloC();  
  8. cout<<abc<<endl;  
  9. return 0;  

C++調用C鏈接庫的相關方法就為大家介紹到這裡。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved