手把手教你学51单片机-变量进阶与点阵LED

变量的作用域

所谓的作用域就是指变量起作用的范围,也是变量的有效范围。变量按他的作用域可以 分为局部变量和全局变量。

局部变量

在一个函数内部声明的变量是内部变量,它只在本函数内有效,在本函数以外是不能使 用的,这样的变量就是局部变量。

全局变量

在函数外声明的变量就是全局变量。一个源程序文件可以包含一个或者多个函数,全局 变量的作用范围是从它开始声明的位置一直到程序结束。

定义全局变量会永久占用单片机的内存单元,而局部变量只有进入定义局部变量的 函数时才会占用内存单元,函数退出后会自动释放所占用的内存。所以大量的全局变量会额 外增加内存消耗。

全局变量的应用会降低函数的通用性,函数在执行的时候过多依赖于全局变量,不 利于函数的重复利用。

全局变量可以被作用域内所有的函数直接引用,可以增加函数间数据联系的途径, 但同时加强了函数模块之间的数据联系,使这些函数的独立性降低,对其中任何一个函数的 修改都可能会影响到其它函数的执行结果,函数之间过于紧密的联系不利于程序的维护的。

变量的存储类别

变量的存储类别分为自动、静态、寄存器和外部这四种。

函数中的局部变量,如果不加 static 这个关键字来修饰,都属于自动变量,也叫做动态 存储变量。这种存储类别的变量,在调用该函数的时候系统会给他们分配存储空间,在函数 调用结束后会自动释放这些存储空间。动态存储变量的关键字是 auto,但是这个关键字是可 以省略的

那么与动态变量对应的就是静态变量。首先,全局变量均是静态变量,此外,还有一种 特殊的局部变量也是静态变量。

猜你喜欢

转载自blog.csdn.net/qq_40107571/article/details/128742165
今日推荐