当您希望在整个程序的生命周期内,全局变量的值仅保留一次初始化,并在多个函数中共享其值时,可以在全局变量之前使用 static 关键字。这样,全局变量将仅在程序的生命周期内初始化一次,并在其声明的源文件中以及其他源文件中的函数中保持其值。
在C++中,使用 static 关键字声明全局变量,可以将其作用域限制在声明它的源文件中。这意味着,其他源文件将无法访问该变量。
例如:
// file1.cpp
int globalVar = 10; // 全局变量
static int staticGlobalVar = 5; // 静态全局变量
void foo() {
// 可以访问 globalVar,但不能访问 staticGlobalVar
}
// file2.cpp
#include "file1.h"
void bar() {
// 可以访问 globalVar,但不能访问 staticGlobalVar
}
在上面的示例中,globalVar
是一个普通的全局变量,可以在多个源文件中访问。而 staticGlobalVar
是一个带有 static 关键字的全局变量,仅在其声明的源文件中(在本例中为 file1.cpp
)访问。
总之,当您希望在多个函数中共享全局变量的值,但仅在程序的生命周期内初始化一次时,可以在全局变量之前使用 static 关键字。这样,您可以在多个函数中访问该变量,同时保持其值在整个程序的生命周期内保持不变。
领取专属 10元无门槛券
手把手带您无忧上云