普通全局变量使用什么修饰

24

用static修饰全局变量,当一个进程的全局变量被声明为static之后,它的中文名叫静态全局变量。静态全局变量和其他的全局变量的存储地点并没有区别,都是在data段或者bss段内,但是它只在定义它的源文件内有效,其他源文件无法访问它。根据这个原理,我们可以在多个文件中定义相同名字的全局变量而不影响,可以重名。

全局变量介绍

全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上并无不同。

这两者的区别在于非静态全局变量的作用域是整个源程序,当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其它源文件中不能使用它。由于静态全局变量的作用域局限于一个源文件内,只能为该源文件内的函数公用,因此可以避免在其它源文件中引起错误。

但是static修饰局部变量的话,将其放到全局区,也就是静态区,当一个函数里面有一个static修饰的局部变量的时候,如果反复调用多次,那么下一次函数用的改变量的值不会再被初始化一次了,而是采用上一次函数执行完之后此变量的值。所以,说明:1.static修饰的变量的值是可变的2.只是在此函数的调用中为全局变量。

温馨提示:答案为网友推荐,仅供参考
相似回答