static既可以作用变量,也可以作用于函数
作用于变量
作用于变量,可分为定义在函数体内的局部变量和定义在函数体外的全局变量
正常的局部变量 作用域和生命周期都相同 为函数体的内部
正常的全局变量 作用域是全部源文件 生命周期是定义该变量的文件内部
而static修饰的局部变量 作用域不变,仍然是函数体的内部,生命周期变成了定义该变量的文件内部
static修饰的全局变量 作用域变成了定义该变量的文件内部,生命周期不变
static 扩大了局部变量的生命周期 缩小了全局变量的作用域
作用于函数
对函数而言,static的修饰使函数成为静态函数
静态函数的生命周期就是定义该变量的文件生命周期,这点不变.而作用域则和静态全局变量一样缩小至文件内部
意义
局部变量生命周期扩大的意义:使局部变量有了和全局变量一样的生命周期,提供了一种更安全的全局变量替代方案.(计算机哲学:少用全局变量)
全局变量和函数作用域缩小的意义:使不同文件的全局变量.函数相隔离,防止了文件间命名冲突的情况(对实际团队开发有帮助).相当于static修饰的变量统一放进对应文件的命名空间里