解析:
- 全局变量(外部变量)的说明之前再冠以static就构成了静态的全局变量。
全局变量本身就是静态存贮方式,静态全局变量当然也是静态存储方式。两者在存储方式上并无不同。两者的区别虽在于非静态全局变量的所用于是整个源程序。当一个源程序由多个源文件组成时,非静态的全局变量在各个源文件中都是有效的。而非静态全局变量则限制了其作用域,即只在定义该变量的源文件内有效,在同一源程序的其他源文件中不能使用它。由于静态全局变量的所用于局限于一个源文件内,只能为该源文件内的函数公用。因此可以避免在其他源文件中引起错误。
从以上分析可以看出。把局部变量改为静态变量后是改变了他的存储方式即改变了它的生存期。把全局变量改变为静态变量后是改变了他的作用域。限制了他的使用范围。
static函数与普通函数的作用域不同。static函数仅在本文件中使用。只在当前原文件中使用的函数应该在说明内部函数(static),内部函数应该在当前源文件中说明和定义。对于可以在当前源文件以外使用的函数。应该在一个头文件中说明。要使用这些函数的源文件要包含这个头文件。
static全局变量与普通的全局变量有什么区别:static全局变量只初始化一次。防止在其他文件单元中被引用;
static局部变量和普通局部变量的有什么区别:static局部变量只被初始化一次。下一次一句上一次结果值。
转载自《猿圈》
</br>
</br>