C++之使用C的代码。由C向C++过度

C++本来是兼容C语言的,但是C语言的代码如何能让C++直接来使用呢?

其实很简单,稍微修改一些内容即可。

一、由于C++对函数名的处理和C语言不一样,所以在头文件函数声明前后添加:

#ifdef __cplusplus
extern "C" {
#endif

//C语言函数声明代码;头文件和define函数声明不必放在这里

#ifdef __cplusplus
}
#endif /* __cplusplus */

并且C++如果调用函数,必须有函数声明,和C语言不一样,C语言是只要.o库里有,即使没有声明也可以使用。所以如果有函数没有声明,也必须声明出来!

二、C++对强制类型转换可能比较严格

比如我的一个函数参数为char * ,实参为void *,则必须强制转换成char * 才行!而且这是error,还不是warning。

C++也会有其他C语言没有的警告,比如:warning: deprecated conversion from string constant to ‘char*’

如果再g++ 后添加 -Werror 或者 -Wall ,就等死吧,许多警告会被当做ERROR。说明你我的代码有许多不符合最标准的规范!

 

其他的应该就没什么了吧,gcc可以编译的,换成g++,针对上面两点修改一下,应该就可以的了。

 

另外还有个C语言调用C++的.o库 之类的。等回来研究下吧。。。。.o如果包括类?C语言应该不可以直接调用,还需要针对C语言,再进行一些封装的吧。

原文链接: https://www.cnblogs.com/ayanmw/archive/2012/03/15/2398593.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

    C++之使用C的代码。由C向C++过度

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/44240

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月8日 下午8:53
下一篇 2023年2月8日 下午8:53

相关推荐