在C++中,靜態初始化是在程序啟動時進行的,用于初始化靜態存儲期的變量。靜態初始化可以通過以下幾種方式進行:
static int staticVar = 42; // 靜態局部變量和靜態全局變量在聲明時進行初始化
void staticInit() {
static int staticVar = 42; // 靜態局部變量在第一次調用靜態初始化函數時進行初始化
}
int main() {
staticInit();
return 0;
}
constexpr int staticVar = 42; // 編譯時常量在編譯時進行初始化
需要注意的是,靜態初始化是按照程序啟動時的順序進行的,如果有多個靜態變量需要初始化,它們的初始化順序是不確定的。此外,如果靜態變量的初始化過程中拋出了異常,程序會終止執行。因此,確保靜態變量的初始化過程不會拋出異常是很重要的。