C与C++的互相调用!就像大学宿舍一样,我用你的,你用我的!

本文探讨了在C++项目中使用C代码以及C语言调用C++函数的场景,详细解释了extern "C"关键字的作用,以及如何通过封装静态库或动态库实现C调用C++。主要内容包括C++的函数重载特性,C调用C++的步骤,以及C++调用C代码的方法。
摘要由CSDN通过智能技术生成

        最近项目需要使用google test(以下简称为gtest)作为单元测试框架,但是项目本身过于庞大,main函数无从找起,需要将gtest框架编译成静态库使用。

        因为项目本身是通过纯c语言编写,而gtest则是一个c++编写的测试框架,其中必然涉及c与c++之间的相互调用。

        注意,本文的前提是,c代码采用gcc等c语言编译器编译c代码,采用g++等c++编译器编译c++代码,如果c和c++代码统一使用g++编译,大部分情况是可以实现两者代码相互调用的。

        以下为踩坑过程的总结o_O||。

 

C 与 C++ 的函数区别

        要了解两者之间如何实现相互调用,必须先了解c与c++之间的函数有什么不同。

        c++作为c语言的升级版,两者必然有很多不同之处。

        其中有一个重大不同点就是,c++支持函数重载,而c语言不支持。为了使函数支持重载,c++在c语言的基础上,将函数名添加上返回值和参数的类型信息。

例如,int add(int, int)这个函数,通过c++编译器编译后,可能呈现的函数名为int int_add_int_int(int, int)

(注:此处为大概地说明c++是如何将返回值和参数信息添加到函数名中的,实

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值