在 C/C 里 static 的作用域完全看你把它用在什么地方用法不一样作用域和生命周期也完全不一样。1. 用在 函数内部局部变量- 作用域只在当前函数内部可见外面不能访问- 生命周期整个程序运行期间都存在不会随着函数退出销毁- 特点只初始化一次多次调用函数值会保留2. 用在 全局变量 / 函数 前面- 作用域只在当前 .c 文件内部可见- 外部文件即使 extern 也访问不到- 用途防止命名冲突做文件内部私有变量/函数3. 用在 C 类里面成员变量 / 成员函数- 作用域属于整个类不属于某个对象- 所有对象共享同一份静态成员- 可通过 类名:: 直接访问不需要实例- 静态成员函数不能访问普通成员变量总结:- 函数内 static作用域在函数生命周期全局- 全局/函数 static作用域限制在当前文件- 类 static作用域属于整个类所有对象共享
static 的作用域
在 C/C 里 static 的作用域完全看你把它用在什么地方用法不一样作用域和生命周期也完全不一样。1. 用在 函数内部局部变量- 作用域只在当前函数内部可见外面不能访问- 生命周期整个程序运行期间都存在不会随着函数退出销毁- 特点只初始化一次多次调用函数值会保留2. 用在 全局变量 / 函数 前面- 作用域只在当前 .c 文件内部可见- 外部文件即使 extern 也访问不到- 用途防止命名冲突做文件内部私有变量/函数3. 用在 C 类里面成员变量 / 成员函数- 作用域属于整个类不属于某个对象- 所有对象共享同一份静态成员- 可通过 类名:: 直接访问不需要实例- 静态成员函数不能访问普通成员变量总结:- 函数内 static作用域在函数生命周期全局- 全局/函数 static作用域限制在当前文件- 类 static作用域属于整个类所有对象共享