extern
extern 变量
告诉编译器:“你现在编译的文件中,有一个标识符虽然没有在本文件或本文件当前位置中定义,但是它是在别的文件中或本文件其它位置定义的全局变量,你要放行!”
//one.cpp
int globe = 10;
void out()
{
cout << "out" << endl;
}
//two.cpp
extern int globe;
extern void out(); //使用关键字extern声明后可以访问到全局变量及函数
int main()
{
cout << globe << endl;
out();
system("pause");
return 0;
}
const类型的数据想被外界访问需要在声明时加extern,static加extern也没有
//one.cpp
int globe = 10;
//const int coonst = 100; 报错
extern const int coonst = 100;
void out()
{
cout << "out" << endl;
}
//two.cpp
extern int globe;
extern void out();
extern const int coonst;
int main()
{
cout << globe << endl;
cout << coonst << endl;
out();
return 0;
}
extern “C”
C++语言在编译的时候为了解决函数的多态问题,会将函数名和参数联合起来生成一个中间的函数名称,而C语言则不会,因此会造成链接时找不到对应函数的情况,此时C函数就需要用extern “C”进行链接指定,这告诉编译器,请保持我的名称,不要给我生成用于链接的中间函数名。