1、局部变量加个static更改变量的生存期,一般用作计数
2、函数和全局变量前面加个static,修改作用域,全局变量加static只在当前文件中使用,避免全局变量满天飞,函数加static把作用域限定在当前文件,不给外部文件使用,防止重名或者被意外调用
局部变量添加static改变生存期,并且可以延续到下次调用而不需要每次初始化。
全局变量之类的可以改变作用域限定在当前文件内,而不影响其他文件中的。
static修饰的变量,其存储类型为全局静态区,变量在程序的整个运行过程中不会被销毁,并且只会被初始化1次。
static修饰,可以把函数的作用域限定在本源文件内,把全局变量的作用域限定在本源文件内。
有时候某个函数需要一个变量,在函数结束后变量的生命周期不结束。又不需要定义一个全局变量,就可以用static。
有时候工程比较庞大,不同文件里有很多函数,作用域只在这个文件,就要加static修饰。
在局部,static修饰的对象为静态
在全局,static修饰的对象表示外部文件不可使用
static主要用来在函数内部定义静态变量的,可以保护这个变量不会在函数外被改变
也可以在文件内定义,表示这个变量只能在当前文件种使用
主要是两个作用
1让一个变量长期有效,而不管其是在什么地方被申使得函数不管在什么地方被调用,当函数退出后变量最后的值将一直会被系统保存(相当于一个全局变量),下次再被用到时,初始值将是最近被保存过的值
2.避免多个文件使用了相同的变量名而导致冲突 比如有多个文件,分别由几个人独立开发的。假定他们在各自的文件中定义相同的“全局”变量名(仅仅指在他们独自的文件中全局),当系统集成时,由于他们使用了名字一样的“全局”变量,导致有难于遇见的问题。解决这个问题方便的做法就是在各自文件中,在相同的全局变量申明前加上static修饰符。这样系统就会为他们分配不同的内存,互不影响了。