C和C++接口的相互调用

C和C++接口的相互调用

 

我们为什么要学习C和C++接口的相互调用?

答:在工作中,我们经常要使用C和C++混合编程,那么,在调用对方接口时,总是不可避免地出现问题。为了让双方和谐地工作,我们就得用到extern "C"。

 

extern "C" 的定义:

  1. extern "C" 是C++的特性,是一种链接约定,它并不影响调用函数的定义,即使做了该声明,对函数类型的检查和参数转换仍要遵循C++的标准,而不是C。
  2. extern "C" 主要是为了解决C++在调用C函数库时,用C++直接链接就会出现不能识别符号的问题,而用上extern "C"后,告诉C++编译器要以C语言的方式编译和链接函数,即直接使用函数名而不是一个经过处理的函数名。

 

extern "C" 的使用:其包含的代码以C的规则来处理

 

extern "C" 的使用情况:

C++调用C的接口:

      cpp文件中加extern "C"

       

 

 

C调用C++的接口:

可以修改C++的文件

 .cpp文件中加extern "C"(和C++调用C的接口处理方法一样)

 

不能修改C++的文件

通过加中间层处理

 

源文件不确定什么编译器编译

则通过C++编译器中的必有的一个宏来判断

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值