一、状态不同;
全局
静态变量
使得该变量成为定义该变量的源文件
所独享,即:全局静态变量对组成该程序的其它源文件是无效的。具有外部链接的静态,可以在所有源文件里调用,除了本文件,其他文件可以通过extern的方式引用。二、含义不同:
全局变量
是不显式用static修饰的全局变量,但全局变量默认是动态的,作用域是整个工程,在一个文件内定义的全局变量,在另一个文件中,通过extern 全局变量名的声明,就可以使用全局变量。全局静态变量是显式用static修饰的全局变量,作用域是声明此变量所在的文件,其他的文件即使用extern声明也不能使用。
静态变量也可以用于存储常数。
具体来说,静态变量(全局变量及
汇编语言
里定义的符号亦同)可用const,constant或final(根据语言决定)等关键字标识,这时其值就会在编译时设定,并且无法在运行时改变。编译器
通常将静态常量
与文本一起置于目标文件的文本区域,而非常量初始化数据则置于数据区;而如若有需要,有些编译器还可选择为其开辟专用区;为防止常数变量被错误的指针写入覆盖,亦可在这块区域启用内存保护机制。以上内容参考:
百度百科-静态变量