static 的主要用途:1.修饰局部变量 2.修饰全局变量 3.修饰函数
(1)、修饰局部变量
为什么添加了static 关键字之后,就会出现不一样的结果呢?是因为static 改变了变量的生命周期(本质上是改变了变量的存储类型),举例说明:
test 函数中没有static 修饰的变量,本身是存储在栈区的,但是因为static修饰了之后,就改变了数据存储的位置,进而改变了变量了变量的生命周期。从而在变量值更改了之后,改变量会保存该值。
(2)、修饰全局变量
全局变量在整个工程中都可以使用,它的生命周期是跟随着整个程序的生命周期。
static修饰了全局变量,使得这个全局变量只能在自己所在的源文件(.c)内部可以使用,其他源文件不能使用。具体的原因:
全局变量,在其他源文件内部可以被使用,是因为全局变量具有外部链接属性,但是被static修饰了之后,就变成了内部链接属性,其他源文件就不能链接到这个静态的全局变量了。
(3)、static 修饰函数,与修饰全局变量相同: