在切换的情况下使用定义的字符

时间:2019-04-14 09:52:36

标签: c switch-statement case

我在交换机的一个案例中使用了预定义的char变量,并收到此错误case label does not reduce to an integer

char player = 'X';
  switch(.....){
    case player:
.
.
.
.

我需要一个解决方案。

2 个答案:

答案 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)