前言
statics是C语言的一个修饰符,可以改变变量以及函数的存储方式和可见性。
局部变量
- 生命周期:只初始化一次,下次进去局部函数,变量扔延续上次的值,程序结束才释放。
- 存储位置:普通局部变量通常存储在栈区,静态局部变量变成全局数据区,即数据段。
- 初始化值:局部变量未初始化值不确定,静态局部变量未初始化值为0。
- 作用域:也仅限于所在函数,但是多次调用之间保持不变。
全局变量
- 可见性:只在该文件可见, extern也不行。
- 存储方式不变, 仍为静态存储。
- 默认未初始化值均为0。
函数
- 作用域:static修饰的函数只在本文件可用。