3、C和C++混合编程\调用

两种情况①C++调用C ②C调用C++。

1、C++调用C

①有源码的情况下,在C的*.h文件函数声明时加入extern "C" {}

例如如下代码,在编译时,此文件会被gcc编译。

#ifdef __cplusplus
       extern "C" {
       #endif

       //函数声明void start_convert(void);

       #ifdef __cplusplus
       }
       #endif

编译过程输出

②如果没有C的源码只有C的库文件,有两种方法解决

1)在库文件对应的头文件加入extern "C" {};

2)在引用*.h头文件时加入extern "C" {}例如

extern "C" {
    #include "header.h"

}

2、C调用C++

①有源码

我们只需要在cpp文件中用 文章开头的源码声明形式,把需要被C文件调用的cpp函数包含即可

 

②无源码

只有C++的库文件,增加一层封装

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值