文件范围中的静态变量

时间:2013-11-27 05:50:00

标签: c++

我在某个"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)?

1 个答案:

答案 0 :(得分:1)

声明

static bool EnvVarIsSet = IsEnvironmentVariableSet();

将在编译模块中执行一次。每次EnvVarIsSet的值都相同。