c - 在 switch 的情况下使用定义的字符

标签 c switch-statement case

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

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

我需要一个解决方案。

最佳答案

来自C11 standard :

The expression of each case label shall be an integer constant expression

player 不是“常量表达式”。

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

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

关于c - 在 switch 的情况下使用定义的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55673956/

相关文章:

c - gtk_tree_store如何添加未呈现为列的元素

c - 如何让链表的最后一个节点参与冒泡排序?

switch-statement - 打开一个字节

sql - 我可以在 Select CASE SQL 中覆盖列的值吗

c - 针对 glib 进行编译时出现链接器错误...?

c - 关于 Fork() 的问题

c++ - switch 语句和递增运算符

android - 切换案例中的 Activity 上下文

用于 RFM 分析的 MySQL 查询

SQLite/Room ORDER BY 与 CASE 语句会忽略列 COLLATE