extern 'c'

 一. extern的做用c++

    1.1. 当它与"C"一块儿连用时,如: extern "C" void fun(int a, int b);函数

        <1>. 则告诉编译器在编译fun这个函数名时按着C的规则去翻译相应的函数名,而不是按照C++的规则spa

        <2>. C++的规则在翻译这个函数名时会把fun这个名字变得面目全非,多是 fun@aBc_int_int#%$,翻译

    也多是别的,这要看编译器的"脾气"了(不一样的编译器采用的方法不同),为何这么作呢,由于C++支持函数的重载啊,在这里不去过多的论述这个问题code

    1.2. 当extern不与"C"在一块儿修饰变量或函数时,如在头文件中: extern int g_Int;blog

        <1>. 它的做用就是声明函数或全局变量的做用范围的关键字编译器

二. extern "C"应用场景编译

    <1>. 以 c 语言的编译的源文件想使用c++编译的函数class

    <2>. 以 c++ 编译的动态库文件,用 c 编译器编译的源文件中想使用其动态库中的函数变量

三. 头文件中的 extern 'c'

 

#ifdef __FUNC_H_

#define _FUNC_H_

#ifdef __cplusplus__

extern "C" {

#endif
 

。。。

#ifdef __cplusplus__
}
#endif
#endif
相关文章
相关标签/搜索