您的位置:首页 > 编程语言 > C语言/C++

C和C++函数互相调用

2016-05-03 17:51 274 查看

Call C++ function from C & Call C function from C++ (C和C++函数互相调用)

By williamxue on Jun 12, 2007

C++中调用C函数


这个比较容易,使用关键字extern就可以,有以下两种格式:

extern "language_name" declaration ;

extern "language_name" { declaration ; declaration ; ... }

例如:

int C_Coding(int a, float b);

做法是,

/\* cpp_a.h \*/

extern "C" {

#include "a.h"

}



/\* cpp_a.h \*/

extern "C" {

int C_Coding(int a, float b); /\* 重定义所有的C函数 \*/

}

这样在C++程序中就可以调用C函数C_Coding了。



C中调用C++函数


调用一个类的public函数,

extern "C" int call_M_foo(M\* m, int i) { return m->foo(i); }

分解开来主要以下几步:

1. C++头文件中,声明有public函数的C++类

2. C++文件中,实现一个有public函数的C++类

3. 进行二次封装:在另一个C++文件中实现一个C函数接口,在这个 C函数中,对类的public函数进行调用。

4. 将这个接口函数用extern导出,使得其他C函数可以调用该函数。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: