1、extern 与"C"在一起时,用于修饰代声明码部分在编译的时候执行C语言逻辑。
在C与C++混合编程时,由于C语言是不具有重载功能的,在与C++混合编程过程中同名函数会被误操作,比如函数void func(int a,int b);void func(float a,float b);不加extern "C"修饰,在代码编译后会被重命名为_func_int_int,与_func_float_float,如果使用C语言标准进行编译,则两个函数的名称都为_func。因此在C/C++混合编程过程中必须使用extern "C"加以区分C与C+。
2、extern 与"C"分开时,与C语言操作类似表示修饰全局变量,其声明的函数和变量可以在本模块或其他模块中使用。