此代码无法编译:
const int x = 123;
const int y = x;
它提示 y= 行的“初始化器元素不是常量”。 基本上我想要两个 const 值,一个根据另一个定义。 有没有办法在 C 中执行此操作,还是我必须使用类型不安全的 #defines 或只是将值按字面意思写为魔数(Magic Number)?
最佳答案
当分配 const 类型时,您只能分配文字,即:1、2、'a'、'b' 等,而不是像 int x、float y、const int z 等变量。变量,尽管您的variable is really not variable(因为它不能改变)是 Not Acceptable 。相反,你必须这样做:
const int x = 123;
const int y = 123;
或
#define x 123
const int y = 123;
第二个有效,因为编译器会在编译前去除所有 x 的地方并用文字替换它。
关于C 中的常量值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5739273/