extern表示引用变量。
假设h1.h定义了如下语句:
int a = 33; extern int a;
这是声明了全局变量a,至少要在其他文件定义一次,否则无法使用。
test.cpp文件如下定义:
int main()
{
//a = 14;
cout << a << endl;
cin.get();
return 0;
}a = 33
如果h1.h只有声明语句:
extern int a;
test.cpp文件如下定义:
int main()
{
a = 14;
cout << a << endl;
cin.get();
return 0;
}那么将报错,因为无法访问a变量,h1.h仅是声明了导出变量a。我们必须在其他地方对其进行赋值。
比如:cx.cpp
extern int a = 55;
需要注意的是,对extern变量只能赋值一次。
如果定义一个静态的文件级变量,那么它将隐藏全局变量:
static int a = 555;
int main()
{
extern int a;
cout << a << endl;
cin.get();
return 0;
}在C++中,const变量默认链接性为内部。这与C不同。
若要将其变为外部链接,可以使用extern关键字。