C和C++的相互调用

终于学到C++的课程,第一节课开始讲C与C++区别。今天才开始在CSDN上写博客,希望以后能一直坚持下去。

C和C++的相互调用:

        首先,为什么要实现C和C++的相互调用? 我们知道程序在链接的时候要生成符号和符号表,而C和C++的生成符号规则是不同的。C在生成符号时只跟函数名称有关系,而C++生成符号时既和函数名称有关,又和函数的参数列表有关。所以需要解决C和C++的调用问题。

        我们都知道,C++是在C的拓展,是C的升华。简单地理解为C++是C的儿子,它继承了C的东西并在C的基础上作出了创新。但是C没有学到C++的东西,C还是那么古板。所以C和C++的相互调用,只能在C++的文件里使用extern“C”,C没有生成C++符号的办法。

        总结之后得到3种情况:

        1、自己写的(可读可写的文件)C调用C++:

在 .cpp文件中,写一个简单的Sum函数 ,使用extern“C”                         在 .c文件中,写一个main函数,打印10和20的和

                                                                      

运行结果是30


如果不加extern"C",则会无法找到Sum函数

              

   2、自己写的(可读可写的文件)C++调用C:

    这种情况在.cpp文件中声明Sum函数时,加上extern“C“就可以。

.cpp文件 :                                                                         .c文件 :                                                  结果:

                   

  3、C和C++的混合调用:

    上面的方法可以解决C调用C++,和C++调用C。C++调C很容易,但C调C++就比较麻烦。如果在工作中遇到混合编程,这时候我们引用一个中间层,让C既可以调C文件又可以调C++文件。

写一个midfile.h(中间文件)                                给被调用的文件添加这个头文件,就可以实现C对C和C++的混合调用了


总结:C++是C衍生出来了的,所以调用的时候extern"C"只能在C++文件中使用。

          

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值