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 游戏客户端的开发。

  • 相关阅读:
    0001_two_sum
    shell 命令
    先验概率,后验概率,似然函数,最大似然估计【待整理】
    numpy学习笔记
    python: __slots__ 解析 (待整理)
    ubuntu,win7双系统问题
    安装sogou输入法
    pytorch安装
    稀疏向量的一些内容
    extern c
  • 原文地址:https://www.cnblogs.com/ayanmw/p/2398593.html
Copyright © 2011-2022 走看看