在c语言中,static有好几种作用,下面介绍:
1.隐藏的作用
比如说我们在一个源代码文件中定义了一个整型变量a(全局变量)。那么在整个项目中a都是可见的,如果在其前面加上static,那么a此时变成了一个静态的全局变量,此时a只能被本源代码文件中引用,对其他代码文件是隐藏的,对于函数来说static也具有隐藏的作用。
2.变量持久化的作用
static修饰的变量全部存储在静态数据区,在静态数据区的变量在一开始就会被初始化,并且只能被初始化一次。全局变量也是如此,只不过被static修饰的全局变量相对于其他文件的代码来说被隐藏了而已。
3.默认初始化0
static可以默认初始化为0.另外全局变量也可以默认初始化为0.在静态数据区,字节的默认值全部是0X00。
附:static修饰的全局变量和普通的全局变量都是静态存储方式,但是static修饰的全局变量改变了它的作用域;
static修饰的局部变量和普通的局部变量,前者改变了变量的生存周期,static修饰局部变量只被初始化一次,这次沿用上次的值