1:局部作用域(Local scope)
从标识符的定义点开始到函数或复合语句之间的程序段。
2:全局作用域(global scope)
指构成C++程序的所有源文件。 在c++标准中,把全局作用域归入连接控制(linkage)范畴。
全局域解析符(global scope resolution operator) "::" 对global scope operator 进行修饰
int x;
void f()
{
double x;
......x....//指 double
....::x...// 指 int x
}
3:文件作用域(file scope)指单独的一个源文件
在全局标识符的定义中加上static 修饰符则该全局标识符就成了具有文件作用域的标识符,他们只能在定义他们的源文件中使用。
static Int y; //y 具有文件作用域
static void f() //f 具有文件作用域
{
}
另外 用const 定义的全局常量名具有文件作用域。
4:函数作用域(function scope) 是指由整个函数定义所构成的程序段。
语句标号是唯一具有函数作用域的标识符,在定义他们的函数体中 的任何地方都可以访问他们。
void f (int x)
{
int y;
...goto x....;
...goto y...;
x: y=x;
y:y=x+1;
}
c++ 把语句标号作为一种特殊的标识符看待,它与其他种类的标识符属于不同的范畴,因此,语句标号的作用域可以和同名的其他标识符的作用域重叠。
5: 函数原型作用域(function prototype scope)