快捷搜索: 王者荣耀 脱发

什么是作用域?作用域分类与简介

什么是作用域?

规定了程序中可以访问标识符的区域。 当变量或函数在文件的某个位置被声明后,那么只能在特定的区域内才能访问这些内容。这个区域就是由标识符的作用域决定的。 标识符的作用域就是在程序代码中,可以使用该标识符的区域。

作用域可以分为:(编译器识别)文件作用域,函数作用域,代码块作用域(块作用域),原型作用域 标识符声明的位置决定它的作用域。


1.文件作用域:

***在代码块之外声明的标识符都具有文件作用域,表示该标识符从声明处开始到文件结尾结束都可被访问。 在文件中定义的函数名也具有文件作用域,函数名本身不属于代码块。其他文件想要引用具有文件作用域的标识符有两种方法:extern和声明在头文件中。

2.函数作用域 :

只适用于语句标签,语句标签用于goto,goto原则上不建议使用。

3.代码块作用域:

位于一对花括号之间的所有语句称为代码块。在代码块内部声明的标识符都具有代码块作用域。当代码块处于嵌套状态时,声明于内层代码块的标识符的作用域到达该代码块的尾部便结束。 注意:规则规定标识符的声明只能在代码块开始的位置,不允许中间插入。 形参的作用域开始于形参的声明处,,如果函数题内部声明了与形参名字相同的局部局部变量,形参将被隐藏,无法访问(K&R规则)。 形参的作用域,是函数体内(代码块最外层)的作用域,这样最外层的局部变量无法与形参名字相同。(ANSI C规则)

4.原型作用域:

只适用于在函数原型中声明的参数名

经验分享 程序员 微信小程序 职场和发展