extern "C"

extent "C" 的作用是让C++代码可以调用C编译器编译出来的函数

 

C++和C对同一函数,编译后的函数名是不同的

对于这样一个函数:int add(int a, float b)

C编译后的函数名类似于这样:_add

C++编译后的函数名类似于这样:_add_int_float(C++编译后函数名比C复杂是支持函数重载的需要)

 

当C++调用C编译后的函数时,也会按C++编译器的改名规则去寻找函数,比如C++代码中调用了int add(int a, float b)这个函数,

就会去查找:_add_int_float。但是因为这个函数是C编译出来的,在二进制文件中的名字是:_add,所以会找不到这个函数

 

如果使用extent "C" 声明int add(int a, float b)函数,则告诉C++编译器,这个函数是C编译出来的,在二进制文件中应该查找_add函数,

而不是_add_int_float

 

 友情链接:网购优惠信息网

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值