static关键字在C/C++中的用法
在C++中,static 关键字有几种不同的用法:
1. 静态(局部)变量
在函数内部声明的变量或类中声明的变量前加上 static,表示这个变量的生命周期为整个程序运行期间,而不是仅在函数执行期间。静态变量在第一次调用时初始化,之后保持其值直到程序结束。
void func() {
static int count = 0; // 静态局部变量
count++;
}
2. 静态函数
在函数声明或定义前加上 static,表示这个函数只在当前文件内可见,不能被其他文件访问。静态函数通常用于实现仅在当前编译单元中可用的辅助函数。
static void helperFunction() {
// do something
}
3. 静态类成员
在类中声明的静态成员变量属于整个类,不是属于类的具体实例。可以直接通过类名进行访问,而不需要创建类的实例。
class MyClass {
public:
static int staticMember; // 静态成员变量声明
static void staticFunction(); // 静态成员函数声明
};
int MyClass::staticMember = 0; // 静态成员变量定义和初始化
void MyClass::staticFunction() {
// do something
}
4. 静态全局变量
在全局作用域声明的变量前加上 static,表示这个变量只在当前文件中可见,其他文件无法访问,避免了全局变量的命名冲突。
static int globalVariable = 10; // 静态全局变量