static关键字在C/C++中的用法

发布时间 2023-12-22 12:02:13作者: FreeCheng

在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; // 静态全局变量