C语言与C++语言函数互相调用

C 语言调用C++语言函数使用方法

1、首先cpp文件中需要在C文件中调用的函数声明为:extern“C”,注:该声明在C语言中无法识别。

例:extern "C" void mytime_test();

void mytime_test()

{

              Date MyDate = Date();

              MyDate.add_day(3);

              cout<<"Date is "<<MyDate.day()<<"\n";

              cout<<"Month is "<<MyDate.month()<<"\n";

              cout<<"Year is "<<MyDate.year()<<"\n";

}

上例中,mytime_test()函数调用了C++中定义的类,此处将该函数前加extern C进行声明,使得在C中可调用。

2、将包含该函数的CPP文件采用C++编译器编译成动态链接库xxx.so文件,并将其添加到标准的库文件路径中。

例:g++ -shared –fpic ClassTest.cpp -s -o libclass.so

        cp libclass.so /lib64/

3、c文件中采用extern 声明为外部函数,并且编译时,加上包含该函数的C++库文件。

例:extern void mytime_test();

              gcc class.c –o classapp lclass

生成的可执行文件classapp既可以在包含libclass.so的环境下运行。

 

C++语言调用C语言函数使用方法

1、首先将包含C++中需要调用的C函数的.c文件编译成库文件。并将生成的添加到标准困文件路径中。

例:gcc shared fpic o libtest.so testlib.c

cp libtest.so /lib64

2、在调用C函数的cpp文件中,采用extern C{被函数}的形式进行声明。

例:#include<iostream>

using namespace std;

extern "C"

{   

void hello();

}

3、编译cpp文件。

例:g++ main.cpp o main -ltest

生成的可执行文件main既可以在包含libtest.so的环境下运行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值