c語言如何呼叫c 本文從qemu開發中總結

2021-09-01 02:41:20 字數 519 閱讀 5599

背景:有時候乙個工程中有c語言編寫的**(.c),也有c++(.cpp)編寫的,分別用c語言編譯器(這裡指gcc)和c++編譯器(g++)編譯.c語言呼叫c++中的函式.

注:這種情形多出現在以下情況,乙個較成熟的大型開源c語言工程,需要在其中新增一些c++特性的函式(僅驗證了下邊的例子)或者庫(對於庫還未驗證).

舉例說明:添上紅色部分**就可以了(必須都加上).主要是要使用extern "c"與__cplusplus,注意.cpp裡面一定要引用標頭檔案hell.h.

hello.h

#ifndef _h_hello_h

#define _h_hello_h

#ifdef __cplusplus

extern "c"

#endif

#endif

hello.cpp

#include

using namespace std;

#include "hello.h"

void print_hello(void)

從C語言到C 語言

c 讀作 c加加 是 c plus plus 的簡稱。顧名思義,c 是在c語言 的基礎上增加新特性。從語法上看,c語言是 c 的一部分,c語言 幾乎不用修改就能夠以 c 的方式編譯。對於c和c 的關係,有很多種說法,新人很容易認為c 是c的公升級版,c 比c要高階,c 高大上,c過時了,這種想法不一...

從lua呼叫C函式

最近在進入lua程式設計的狀態,一度令我困惑的是,lua提供的功能少的可憐,跟自備電池的python相比,可說是簡陋了。連table的列印,都需要自己實現,也因此有了一打的第三方方案。後來我想明白了,以lua和c如此緊密的關係,只需要建立lua的binding,那麼豐富而效能強大的c庫資源完全可以為...

從C語言到彙編,從彙編到C語言

看雪一同志寫的文章,我覺得很基礎和有用,知識著眼於小處。積累才是王道!一 迴圈語句與發彙編後的機器語言 1 for迴圈 下面是一段c語言的 我們的目的是來看其反彙編的結果 int myfunction int a,int b return c 前面的反彙編暫時不理它,這裡從for的地方開始反彙編,結...