C/C++中extern "C"的使用

date: 2013.08.01; modification:2013.08.03

目录:

1 背景

因为C, C++的编译器对函数名的修饰不同, 为了保证在C, C++中编写的函数能够被互相调用, 所以采用这个链接指示符.

例如, 函数:

    int func(int, int)

所以如果不加任何说明, 直接在C和C++之间相互调用, 就会编译出错.

2 应用场合

3 使用方法

通常C中编写的函数如果有在其它语言中使用的可能, 通常会有下面形式的声明:

    #ifdef  __cplusplus
    extern "C" {
    #endif

    /**** some declaration or so *****/

    #ifdef  __cplusplus
    }
    #endif  /* end of __cplusplus */

即在声明时已经加上extern "C" 而不需要调用时麻烦. 例如在VC++中调用C的库函数就不用作特别的声明.

4 extern "C"的使用要点

    extern "C" double sqrt(double);
    extern "C"
    {
        double sqrt(double);
        int min(int, int);
    }
    extern "C"
    {
        #include <cmath.h>
    }

5 参考资料

http://blog.csdn.net/vinep/article/details/3899780