【问题标题】:using defined char in a case of switch [duplicate]在切换的情况下使用定义的字符[重复]
【发布时间】: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


    【解决方案1】:

    来自C11 standard

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

    player 不是常量表达式”。

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

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

    【讨论】:

      【解决方案2】:

      你想要的是:

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

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

      【讨论】:

      • player 更改有时我需要使用player
      • 然后你编码player的所有可能值。查看我的更新。
      猜你喜欢
      • 1970-01-01
      • 2023-02-07
      • 1970-01-01
      • 2020-09-20
      • 2011-10-20
      • 2013-11-04
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多