欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

c语言怎么会有这么多的作用域?

程序员文章站 2022-04-30 19:31:24
首先作用域是什么?        顾名思义作用域就是一个东西能起作用的范围,当然这个解释未免有些太过于笼统,在c语言中作用域就是指声明一个...
首先作用域是什么?

       顾名思义作用域就是一个东西能起作用的范围,当然这个解释未免有些太过于笼统,在c语言中作用域就是指声明一个变量,而这个变量能被访问的这个区域就是它的作用域。这个变量的被访问的区域由着个变量的标识符的作用域所决定。标识符的作用域就是程序中该标识符可以被使用的区域。

c语言的编译器可以大体的分出四个作用域 分别是:文件作用域、函数作用域、代码块作用域、原型作用域。

代码块作用域:

     位于一对大括号中的语句就是一个代码块,在一对大括号内可以使用的变量都具有代码作用域的特征。局部变量就是一个具有代码块作用域的变量,它只能在声明它的大括号内被使用,只能被用于自己的代码块,别的代码块都不能使用它。

文件作用域:

      声明在所用代码块之外的变量都具有这个文件作用域的特征,从声明处开始到源文件的结束,它都是可以被访问的。典型的代表就是全局变量,它一般都声明于main函数之前,存在于整个源文件执行过程直到源文件结束,但是别的源文件不能访问。

原型作用域:

      原型作用域只适用于在函数原型中声明的参数名,在函数原型中参数名可以省略,但是如果出现参数名,它可以随意取名,而原型作用域就是防止这些参数名与程序中其他的部分的名字冲突。

函数作用域:

      函数作用域它只适用于语句标签,而语句标签适用于goto语句,它的规则是:一个函数中所用的语句标签必须唯一。(不常用)