C++調(diào)用C鏈接庫(kù)具體應(yīng)用技巧講解
C++編程語(yǔ)言的應(yīng)用范圍非常廣泛,應(yīng)用方式靈活,它能夠支持多種程序設(shè)計(jì)風(fēng)格,幫助我們輕松解決許多問(wèn)題。比如今天為大家介紹的C++調(diào)用C鏈接庫(kù)具體操作方法,就是一個(gè)比較經(jīng)典的例子,可以讓大家充分了解到其中的概念。#t#
C++調(diào)用C鏈接庫(kù),其實(shí)相對(duì)C調(diào)用C++。因?yàn)镃++本來(lái)就向下兼容C吧(個(gè)人見(jiàn)解)。
但由于編譯器的設(shè)計(jì)不同,會(huì)出現(xiàn)一些問(wèn)題,如下:(如中間部分,有一句undefined reference to 'helloC()' ,helloC()是我在C鏈接庫(kù)中的函數(shù))
簡(jiǎn)單說(shuō)來(lái)原因就是未經(jīng)處理的C代碼編譯后函數(shù)名可能變?yōu)開(kāi)helloC()之類的,而C++編譯后函數(shù)名卻不是這樣,所以就對(duì)不上。
需要在include C的文件的時(shí)候加上extern "c"
在練習(xí)中,寫(xiě)了三個(gè)文件:c.h c.c cpp.cpp 前兩個(gè)編譯為C鏈接庫(kù),cpp.cpp使用C。驗(yàn)證了C++調(diào)用C鏈接庫(kù)可以訪問(wèn)到C的全局變量。
c.h:
- #include "stdio.h"
- void helloC();
- int abc = 1;
c.c:
- #include <stdio.h>
- #include "c.h"
- void helloC(){
- printf("I am Kenko");
- }
cpp.cpp:(重點(diǎn)在于如何include)
- #include <iostream>
- using namespace std;
- extern "C" {
- #include "c.h"
- }
- int main(){
- helloC();
- cout<<abc<<endl;
- return 0;
- }
C++調(diào)用C鏈接庫(kù)的相關(guān)方法就為大家介紹到這里。



















