当变量在程序中的某个部分被声明时,它只有在程序的一定区域被访问。这个区域由标识符(变量)的作用域决定。在c语言中,一共有四种作用域,分别是代码块作用域、文件作用域、原型作用域和函数作用域。
- 代码块作用域:
由{} 标识的区域称为代码块作用域。在代码块内部声明的标识符都具有代码块作用域。各个代码块的作用域不重叠。
{
int i = 10;
int j;
}
{
int i = 20;
}
- 文件作用域:
任何代码块之外的声明的标识符具有文件作用域。这些标识符,从声明处,到文件结尾,都可以访问。
- 原型作用域:
原型作用域只适用于在函数原型中声明的参数名。原型作用域主要是防止在函数原型中,多次使用同一个名字。
int compare(int a,int b);
- 函数作用域
函数作用域用于语句标签(goto),一个函数中的所有语句标签必须唯一。