在源文件中定义的变量的范围是什么,但在任何函数定义之外?

时间:2012-04-19 20:17:47

标签: c++ scope

// Foo.cpp

int whatScopeAmI = 0;

Foo::Foo() {
 // source code
}

变量whatScopeAmI的范围是什么?

2 个答案:

答案 0 :(得分:3)

该变量是带有程序范围的global variable ,因为它是在任何块之外定义的:

  

在块之外声明的变量称为全局变量。全局变量具有程序范围,这意味着它们可以在程序中的任何位置访问,并且只有在程序结束时才会被销毁。

答案 1 :(得分:3)

这是一个全球化的,可以在该计划的任何地方使用。

如果其他翻译单元具有extern int whatScopeAmI;声明,则它将引用相同的变量。

如果变量声明为static int whatScopeAmI = 0;,它将具有内部链接,并且仅在当前翻译单元中可用。