C跟C++文件互相调用的时候该怎么做!!

下午编译代码时总结出来了一点好东西,在此记录一下。

当自己写的C文件要掉用C++的头文件的时候要进行如下修改:

将.c文件中包含的.cpp文件的头文件由

#include “Cpp.h”修改为

#ifdef  __cplusplus
     extern "C"
     {
#endif
    
#include "Cpp.h"
    
#ifdef __cplusplus
     }
#endif

当编译代码时编译器就会正确的选择编译器编译上述代码。


相反,如果C++的文件要掉用C文件的头文件时,我查看了下资料,网上很多人说

将C++中的C的头文件改成

extern “C”

{

#include "C.h"

}

然后将C的头文件C.h中的C++用的函数前加extern

这种方法我试了下,结果是编译不过去的,编译器会一直提示说C++文件调用的函数没定义,所以编译会失败。

所以想了下办法最后改成如下方式:

C++文件中C的头文件方式不变还是

#include “C.h”

在C.h文件里面加上如下代码:

#ifdef __cplusplus

extern "C"

{

#endif

..............

#ifdef __cplusplus

}

#endif

至于C的头文件中的函数之前要不要加extern就无所谓了。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值