【发布时间】:2011-05-26 08:54:56
【问题描述】:
这是我的代码:
int main()
{
const int LEN = 5;
int x[LEN];
}
VS10 说:
错误 C2057:预期常量 表达
错误 C2466:无法分配数组 大小为 0
错误 C2133:“x”:未知大小
我什至尝试了此页面中的代码,但它给出了同样的问题(我注释了给出错误的代码,并取消了正确的注释): http://msdn.microsoft.com/en-us/library/eff825eh%28VS.71%29.aspx
如果我尝试使用糟糕的编译器,我会认为这是编译器中的错误,但它是 VS2010!
【问题讨论】:
-
检查 LEN 是否没有在某处#定义?
-
我的问题是你为什么不为此使用
#define? -
@William:
#defines 不是定义常量的好方法,因为它们使用预处理器并且缺少输入信息等;较新的语言通常甚至没有等价物。在大多数情况下,像这样的常量是更好的做法。 -
@sje397 我确定源代码中没有任何#define。
-
所有#defines 都是全局的,这就是它们不好的原因。有一天你会想在本单元下面的某个地方#define 另一个 LEN。当一个 .cpp 单元中的所有#defines 都不是什么大问题,但仍然很烦人。
标签: c++ c compiler-construction compiler-errors