在上一课中,你学到了一块有块中声明的变量范围。块范围变量只能在块中声明它们(或一个嵌套的子块),并被摧毁当块结束。
一块外声明的变量称为全局变量。全局变量都有计划的范围,这意味着他们可以在程序中到处访问,他们只是被破坏时,程序结束。
这里是声明一个全局变量的一个例子:
int g_nX; // global variable
int main()
{
int nY; // local variable nY
// global vars can be seen everywhere in program
// so we can change their values here
g_nX = 5;
} // nY is destroyed here
因为全局变量有计划的范围,他们可以在多个文件中使用。在一节多文件程序,你知道为了使用功能在另一个文件中声明,你必须使用一个声明,或者头文件。
同样,为了使用一个全局变量,已在另一个文件中声明,你必须使用一个前向声明或者头文件,随着extern关键字。extern告诉编译器你没有宣布一个新的变量,而是指一个变量的地方。
这是使用向前声明式的外部的一个例子:
// declaration of g_nValue
int g_nValue = 5;
main.cpp:
// extern tells the compiler this variable is declared elsewhere
extern int g_nValue;
int main()
{
g_nValue = 7;
return 0;
}