我在交换机的一个案例中使用了预定义的char变量,并收到此错误case label does not reduce to an integer
char player = 'X';
switch(.....){
case player:
.
.
.
.
我需要一个解决方案。
答案 0 :(得分:0)
来自C11 standard:
每个案例标签的表达式应为整数常量表达式
player
不是是“ 常量表达式”。
请注意,在C中将变量限定为const
,不会使它成为C标准意义上的“ 常量表达式”。 / p>
标签要么必须是整数文字,要么是enum
,实际上,是是整数。
答案 1 :(得分:0)
您想要的是:
char player = 'X';
switch(player){
case 'X':
case 'Y':
case 'Z':
(char是一种编码,而编码是一个int)