在C语言中,关键字static的意思是静态,他的主要作用有两个:
1.在函数体内
静态变量具有“记忆”功能,即一个被声明为静态的变量只会被初始化一次,该函数在调用过程中,其值保持不变。一个变量被定义为静态变量就会将其放到静态数据区,而不是栈区。
也就是说一个静态变量只有在声明时对其进行一次出初始化,如果声明时未对其进行赋值操作:
静态整型默认为0‘’
静态字符默认为空;
2.在文件内(在函数体外)
在文件内,静态函数/变量用来限制其作用域为本文件内。
即如果一个变量被声明为静态的,那么该变量可以被当前文件内的所有函数访问,但不能被其他文件中的函数访问。他是一个本地的全局变量,且只会被初始化一次。
如果一个函数被声明为静态的,那么该函数与普通函数的作用域不同,其作用域仅在当前文件中,也就是说他只可以被本文件的其他函数调用,而不可以被本文件以外的其他函数调用