C中的const值

Shu*_*hum 4 c const

此代码无法编译:

const int x = 123;
const int y = x;
Run Code Online (Sandbox Code Playgroud)

它抱怨y =行的"初始化元素不是常数".基本上我想要有两个const值,一个是根据另一个定义的.有没有办法在C中执行此操作或者我是否必须使用type-unsafe #defines或者只是将值写为幻数?

Dai*_*air 8

分配const类型时,你只能分配文字,即:1,2,'a','b'等,而不是像int x,float y,const int z等变量.变量,尽管你的变量真的是这样的不可变(因为它不能改变)是不可接受的.相反,你必须这样做:

const int x = 123;
const int y = 123;
Run Code Online (Sandbox Code Playgroud)

要么

#define x 123
const int y = 123;
Run Code Online (Sandbox Code Playgroud)

第二个工作,因为编译器将在任何地方剥离x并在编译之前用文字替换它.