#ifdef __cplusplus 的用法

来源:互联网 发布:初音秘密警察知乎 编辑:程序博客网 时间:2024/05/02 00:39

   我们知道C和C++在编译时对函数有一个mangling过程~所以C和C++程序不能直接相互调用,必须使用extern "C"进行修饰~

    一般来说,我们会这样写头文件中:

    #ifdef __cplusplus   //注意__cplusplus是C 编译器的保留宏定义.就是说C 编译器认为这个宏已经定义了,一定要完全一样,否则会出问题

    extern "C"{      //extern "C" {} 是告诉C++编译器,括号里的东东是按照C的obj文件格式编译的,要连接的话按照C的命名规则去找.

    #endif

    //函数接口声明

    #ifdef __cplusplus

    }

    #endif

    这样,C和C++的程序就能相互调用了~