作用域讨论的是标识符在文件中可以被访问的范围。变量作用域分为文件作用域、代码块作用域、原型作用域和函数作用域。
在所有代码块外申明的标识符具有文件作用域,从申明之处开始到文件末尾,该标识符可以被访问。由于文件中定义的函数名并不属于任何代码块,因此它具有文件作用域。同样使用#include自定义头文件时,头文件中的申明语句就好比写在文件中,因此它们也具有文件作用域。
在代码块开始处申明的标识符具有代码块作用域,其可以被代码块中所有语句访问。
原型作用域适用于函数原型申明的参数名,其是防止一个多形参的函数原型中使用相同名字的参数。
函数的作用域:标识符在整个函数中都有效。只有语句标号属于函数作用域。标号在函数中不需要先声明后使用,在前面用一个goto
语句也可以跳转到后面的某个标号,但仅限于同一个函数之中。