C 作用域规则

预计时间: 2分钟

C语言的作用域规则是一组规范,决定一段代码能否感知或访问其它代码或数据。

作用域

在C程序中,相同的标识符可以有不同的含义。C语言的作用域规则使得编译器可以确定与程序中给定点相关的是哪种含义。

当程序块内的声明命名一个标识符时,如果些标识符已经是可见的,新的声明临时『隐藏』了旧的声明,标识符获得了新的含义。 在程序块的末尾,标识符重新获得旧的含义。

函数的作用域规则

函数的作用域从声明它的地方开始,到其所在的文件的末尾结束。

函数体的代码对程序其它部分隐藏,如果不用全局变量或全局数据,函数代码和程序其它部分不可能互相影响。

一个函数内定义的代码和数据无法与其它函数的代码和数据交互,因为两个函数的作用域不同。

局部变量

函数中定义的变量称为局部变量,函数进入时局部变量被建立,函数退出时局部变量被撤消。 因此,函数两次被调用之间,局部变量不能保持其值不变。

static 定义的静态局部变量,处理值方面,编译器当作全局变量对待。但处理可见性方面,仍然当作局部变量看待。

更新于2022年04月09日