我在某个"EnvVarIsSet"
文件的文件范围中使用了静态变量abc.cpp
,如下所示
#include <env.h>
static bool EnvVarIsSet = IsEnvironmentVariableSet();
..
..
例程IsEnvironmentVariableSet()
是一个extern例程,在其他文件(env.h & env.cpp
)中声明和定义。
在文件abc.cpp
中的某处,在某些例程中,我使用了这个变量(以及此文件中的其他位置)
if( EnvVarIsSet )
{
//do something
}
这是否意味着,在运行时,只要遇到EnvVarIsSet
文件中的变量abc.cpp
,就会调用IsEnvironmentVariableSet()
例程?或者上面的静态变量只适用于常量(即静态绑定,例如const bool EnvVarIsSet = false
)?
答案 0 :(得分:1)
声明
static bool EnvVarIsSet = IsEnvironmentVariableSet();
将在编译模块中执行一次。每次EnvVarIsSet
的值都相同。