申明:此为本人学习笔记,若有纰漏错误之处的可留言共同探讨
static + 全局变量 = static全局变量
然而区别static全局变量和全局变量的并不是存储方式,因为他们都是静态存储方式。那他们有什么区别呢?新手们都觉得用了static和没用static没什么区别,也不报错啊。
我们先来看一种情况,
源文件 = 源文件 +源文件 +...+源文件 ; (即当一个源程序由多个源文件组成) 【假如我们设定红色字体的源文件中用的是static全局变量,其他的用非static全局变量】
当出现以上情况时
static全局变量仅仅在于定义该变量的源文件中有效,即红色字体那个源文件才可以使用定义过的static,而其他的不可以使用。
非static全局变量在于所有的源文件中都可以使用。
所以,我们加了static,可以防止在别的原文件中定义相同的全局变量引起的错误
如果源文件只是由一个构成的话,那么它们就没什么区别了
因此,它们的区别在于:改变了它的作用域