static && extern
修饰局部变量
static 修饰局部变量
- 延长局部变量声明周期,从程序启动到程序结束,但是没有修改变量的作用域
- 定义变量的代码在整个程序运行期间就只执行一次
extern 不能修饰局部变量
修饰全局变量
static 修饰全局变量
- 表示这个全局变量只能在当前文件使用,不能在其他文件使用
- 在不同文件可以声明同名变量
- 修饰函数表示这是一个内部函数
extern 修饰全局变量
- 表示这个全局变量可以在其他文件使用
- 在不同文件不能声明同名变量
- 修饰函数表示这是一个外部函数
全局变量、静态全局变量、静态局部变量的声明周期相同,都是直到程序结束才被释放
局部变量 && 全局变量
局部变量
- 形参
作用域:函数体内 - 函数局部变量(在函数体内定义的局部变量)
作用域:从定义这个变量开始到函数结束 - 静态局部变量
作用域:当前文件
全局变量
如果函数内部,全局变量和局部变量同名,那么在这个函数内部,局部变量起作用
- 静态全局变量
作用域:当前文件 - 全局变量
作用域:所有文件