1. static全局变量与普通全局变量的区别
全局变量的说明之前再加上static就构成静态全局变量。全局变量本身就是静态存储方式,静态全局变量当然也是静态存储方式。这两者在存储方式上没有区别。区别在于,非静态全局变量的作用域是整个源程序,当一个源程序是由多个源文件组成时,声明的非静态全局变量在每个源文件中都是有效的。而静态全局变量则限制了其作用域,只在其声明的源文件中有效,在同一源程序中不能使用它。
2.局部变量与静态变量的区别
把局部变量改变成静态变量后,改变了它的存储方式,及改变了它的生存期。静态变量只在程序中初始化一次,在调用时下一次依据上一次的值。
3.静态static函数与普通函数的区别
static函数在内存中只存在一份,普通函数在每个被调用中维护一份复制品。