这个问题在这里已有答案:
我在我的交换机的情况下使用了预定义的char变量并得到了这个错误case label does not reduce to an integer
char player = 'X';
switch(.....){
case player:
.
.
.
.
我需要一个解决方案。
来自C11 standard:
每个case标签的表达式应为整数常量表达式
player
不是一个“常数表达”。
请注意,在C中将变量限定为const
,不会使其成为C标准意义上的“常量表达式”。
标签要么是整数文字,要么是enum
,实际上是整数。
你想要的是:
char player = 'X';
switch(player){
case 'X':
case 'Y':
case 'Z':
(char是一种编码,编码是int)