zoukankan      html  css  js  c++  java
  • 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 游戏客户端的开发。

  • 相关阅读:
    CodeForces 681D Gifts by the List (树上DFS)
    UVa 12342 Tax Calculator (水题,纳税)
    CodeForces 681C Heap Operations (模拟题,优先队列)
    CodeForces 682C Alyona and the Tree (树上DFS)
    CodeForces 682B Alyona and Mex (题意水题)
    CodeForces 682A Alyona and Numbers (水题,数学)
    Virtualizing memory type
    页面跳转
    PHP Misc. 函数
    PHP 5 Math 函数
  • 原文地址:https://www.cnblogs.com/ayanmw/p/2398593.html
Copyright © 2011-2022 走看看