【发布时间】:2019-04-14 09:52:36
【问题描述】:
我在 switch 的一个 case 中使用了预定义的 char 变量并收到此错误 case label does not reduce to an integer
char player = 'X';
switch(.....){
case player:
.
.
.
.
我需要一个解决方案。
【问题讨论】:
标签: c switch-statement case
我在 switch 的一个 case 中使用了预定义的 char 变量并收到此错误 case label does not reduce to an integer
char player = 'X';
switch(.....){
case player:
.
.
.
.
我需要一个解决方案。
【问题讨论】:
标签: c switch-statement case
来自C11 standard:
每个case标签的表达式为整数常量表达式
player 不是“常量表达式”。
请注意,在将变量限定为 const 的 C 中,不使其成为 C 标准意义上的“常量表达式”。
标签要么需要是整数文字,要么是enum,实际上是一个整数。
【讨论】:
你想要的是:
char player = 'X';
switch(player){
case 'X':
case 'Y':
case 'Z':
(一个char是一种编码,编码是一个int)
【讨论】:
player 更改有时我需要使用player
player的所有可能值。查看我的更新。