在C++中,静态初始化是在程序启动时进行的,用于初始化静态存储期的变量。静态初始化可以通过以下几种方式进行:
static int staticVar = 42; // 静态局部变量和静态全局变量在声明时进行初始化
void staticInit() {
static int staticVar = 42; // 静态局部变量在第一次调用静态初始化函数时进行初始化
}
int main() {
staticInit();
return 0;
}
constexpr int staticVar = 42; // 编译时常量在编译时进行初始化
需要注意的是,静态初始化是按照程序启动时的顺序进行的,如果有多个静态变量需要初始化,它们的初始化顺序是不确定的。此外,如果静态变量的初始化过程中抛出了异常,程序会终止执行。因此,确保静态变量的初始化过程不会抛出异常是很重要的。