2016 - 2024

感恩一路有你

全局变量与静态变量 静态变量和全局变量的区别?

浏览量:1524 时间:2021-03-16 22:33:33 作者:admin

静态变量和全局变量的区别?

全局变量声明之前加上static,就是静态全局变量。全局变量和静态全局变量都是静态存储的;在存储上无区别。区别在于他们的作用域;全局变量的作用域是整个源程序,当源程序有多个源文件组成时,全局变量在各个源程序文件都是有效的;而静态全局变量怎被限制了作用域,只在定义该变量的源文件内有用在同一程序的其他源文件不能使用!还有静态全局变量只初始化一次,防止在其他源文件调用!而全局变量可以再其他源文件初始化!!这样说楼主明白了吗?

全局变量和静态变量的区别?

局部变量与其它三个有本质区别。

局部变量,定义在函数内,作用域为定义位置,到所在大括号结束。 每次执行到定义语句的时候,系统为该变量分配内存,当作用域结束后,内存被释放。

而另外三个,都是在系统运行时就分配内存,在运行过程中都不会释放,直到程序结束。

也就是说,局部变量和其它三个,最明显的区别:

1 生命周期不同

2 分配时间不同

3 分配位置不同。

而另外三个,在这几项上是相同的,之间的区别在于作用域。

全局变量,作用域为整个项目,不管在哪个文件中,只要声明后都可以使用。

静态全局变量,作用域为定义改变量的所在文件。

而静态局部变量,作用域与普通局部变量一样,都是定义位置到所在大括号结束

全局变量跟静态变量有什么不一样?

了解变量的关键在于“存在范围”和“作用域”两个概念。

“存在范围”指存储变量的内存空间在什么时间段内存在。全局变量和静态变量都是在程序运行之始就产生,运行结束才销毁,是一样的。

“作用域”指变量在什么时间段内可见,即可以被识别。全局变量的作用域是整个程序运行过程,静态变量的作用域是声名该变量的局部函数内。在总程序内和这个函数外,静态变量虽然存在,但写下变量名时编译器却不认识,这是区别。

关键在于了解存在和可见的区别。

全局变量与静态变量 static局部变量和全局变量 keil5优化等级设置

版权声明:本文内容由互联网用户自发贡献,本站不承担相关法律责任.如有侵权/违法内容,本站将立刻删除。