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语言,再进行一些封装的吧。

转载请注明出处:http://www.cnblogs.com/ayanmw 多谢

------------------------------------------------------------------------------------------------

一定要专业!本博客定位于 ,C语言,C++语言,Java语言,Android开发和少量的Web开发,之前是做Web开发的,其实就是ASP维护,发现EasyASP这个好框架,对前端后端数据库 都很感觉亲切啊。. linux,总之后台开发多一点。以后也愿意学习 cocos2d-x 游戏客户端的开发。

原文地址:https://www.cnblogs.com/ayanmw/p/2398593.html