c语言怎么会有这么多的作用域?
程序员文章站
2022-12-10 13:08:54
首先作用域是什么?
顾名思义作用域就是一个东西能起作用的范围,当然这个解释未免有些太过于笼统,在c语言中作用域就是指声明一个...
首先作用域是什么?
顾名思义作用域就是一个东西能起作用的范围,当然这个解释未免有些太过于笼统,在c语言中作用域就是指声明一个变量,而这个变量能被访问的这个区域就是它的作用域。这个变量的被访问的区域由着个变量的标识符的作用域所决定。标识符的作用域就是程序中该标识符可以被使用的区域。
c语言的编译器可以大体的分出四个作用域 分别是:文件作用域、函数作用域、代码块作用域、原型作用域。
代码块作用域:
位于一对大括号中的语句就是一个代码块,在一对大括号内可以使用的变量都具有代码作用域的特征。局部变量就是一个具有代码块作用域的变量,它只能在声明它的大括号内被使用,只能被用于自己的代码块,别的代码块都不能使用它。
文件作用域:
声明在所用代码块之外的变量都具有这个文件作用域的特征,从声明处开始到源文件的结束,它都是可以被访问的。典型的代表就是全局变量,它一般都声明于main函数之前,存在于整个源文件执行过程直到源文件结束,但是别的源文件不能访问。
原型作用域:
原型作用域只适用于在函数原型中声明的参数名,在函数原型中参数名可以省略,但是如果出现参数名,它可以随意取名,而原型作用域就是防止这些参数名与程序中其他的部分的名字冲突。
函数作用域:
函数作用域它只适用于语句标签,而语句标签适用于goto语句,它的规则是:一个函数中所用的语句标签必须唯一。(不常用)