extern可以修饰变量也可以修饰函数
修饰变量和函数的时候,只是修饰其声明而不修饰定义,告诉编译器,此变量或者函数的定义在别的文件之中,生成的符号是global的,此相对于static关键字。
extern可以用于C++和C函数的相互引用:
当C函数引用C++代码时,需要对.cpp文件中的C++代码的定义加extern "C"修饰,例如
extern “C”
{
void func()
{
cout<<"nihao"<<endl;
}
}//在C中正常声明引用
当C++中引用C代码时,需要对C函数的声明修饰,
extern "C"
{
int functon();//只需要对声明进行修饰
}