c - 切换到C编程

标签 c

<分区>

我编写此代码只是为了学习目的。但是在这样做的过程中我发现了一个问题。这里 x 是常数整数,编译器仍然给我错误。我正在使用 gcc 编译器。请解释这个错误的原因是什么以及如何避免它。

#include<stdio.h>
int main()
{
int const  x = 10;
int y = 20;
switch(y)
{
    case x:      //error: case label does not reduce to an integer constant
    printf("value of x: %d\n",x);   
    break;
}
}

最佳答案

您可以使用预处理器作为解决方法:

#define X 10
// ...
case X:

关于c - 切换到C编程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19139757/

相关文章:

c - RTP 服务器 C 中的简单实现

c - C中struct的动态内存分配

c - Scanf 无法正确读取包含初始 0 的输入

c - VSSCAF 错误,从 c 中的响应缓冲区中提取变量 [按行和按关键字]

C 编译器预处理器输出

c - regmatch_t 我怎样才能得到匹配?

c - 如何将二维数组作为参数传递给 C 中的函数

c - 从文件中读取标题部分

c - 这是检查 2 个 c 字符串是否在内存中重叠的正确且可移植的方法吗?

c - 需要帮助解决 C 指针链表赋值问题