0

我在 3 个文件中有以下代码:

定义.h

#ifndef Defines_h
extern const unsigned int SIZE;

#endif

定义.cpp

#include "Defines.h"

const unsigned int SIZE = 10;

主文件

#include "Defines.h"

int main()
{
    int x[SIZE] = {0};
}

在编译时,我在数组定义行得到错误:

错误 C2057:预期的常量表达式和 C2466:无法分配常量大小为 0 的数组

为什么会发生这种情况,毕竟我的 SIZE 确实是一个常数?

4

2 回答 2

2

移动const unsigned int SIZE = 10;到标题并删除外部行。使用简单的 const int 值,直接在标题中声明它是安全且无害的。

于 2012-10-31T06:12:39.270 回答
0

const是隐含static的,你需要一个extern偶数的SIZE定义。包含文件不会链接,因为它正在寻找const unsigned int SIZE带有外部链接的文件。

于 2012-10-31T06:15:41.373 回答