2

可能重复:
C 编译器错误 - 初始化程序不是常量
使用非常量初始化程序定义全局变量

我在下面给出了全局定义的 2 个变量,我得到了 C2099 错误。我正在使用 Visual Studio 2005。

以下是变量:

const char* key = "AZFFProgramFiles";
const char* val = getenv(key);
4

1 回答 1

0

由于val是在静态文件级别声明的,因此编译器必须在编译时知道它的值。情况并非如此,因为您通过调用getenv(key). 这是因为全局值被放置在编译时创建的二进制文件的特殊存储区域中。

于 2012-12-12T04:22:21.263 回答