在switch [duplicate]的情况下使用定义的char

问题描述 投票:0回答:2

这个问题在这里已有答案:

我在我的交换机的情况下使用了预定义的char变量并得到了这个错误case label does not reduce to an integer

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

我需要一个解决方案。

c switch-statement case
2个回答
0
投票

来自C11 standard

每个case标签的表达式应为整数常量表达式

player不是一个“常数表达”。

请注意,在C中将变量限定为const,不会使其成为C标准意义上的“常量表达式”。

标签要么是整数文字,要么是enum,实际上是整数。


0
投票

你想要的是:

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

(char是一种编码,编码是int)

© www.soinside.com 2019 - 2024. All rights reserved.