【发布时间】:2009-04-27 19:58:57
【问题描述】:
我想在新常量的定义中使用一些以前定义的常量,但是我的 C 编译器不喜欢它:
const int a = 1;
const int b = 2;
const int c = a; // error: initializer element is not constant
const int sum = (a + b); // error: initializer element is not constant
有没有办法使用其他常量的值来定义一个常量?如果不是,这种行为的原因是什么?
【问题讨论】:
-
您使用哪个编译器?我没有收到 gcc 4.3.3 的错误甚至警告
-
我使用 gcc 3.4.5 进行此测试,使用 CodeWarrior 5.7.0 进行更复杂的程序,让我走上这条路
-
gcc 4.3.3 确实给出了这些错误。如果您将其编译为 C++,则不会出现错误,因为它在那里有效,但作为纯 C,您会收到上述错误。
-
无赖。我可以轻松地使用不同版本的 gcc,但在实际项目中我坚持使用 CodeWarrior。感谢您提供有关新版本 gcc 的提示。