页首Html代码

返回顶部

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

posted @ 2012-03-15 20:01  ayanmw  阅读(935)  评论(0编辑  收藏  举报

页脚Html代码