c - 如何在 Visual Studio 2012 中使用枚举

标签 c visual-studio-2012 enums

我正在使用 Visual Studio 2012 学习 C 语言,并使用旧书(使用 Turbo C 的书)。

下面的代码无法处理以下错误消息。

void main()
{
    enum AA {QQ, WW, EE, RR, TT};
    enum BB a, b, c, d, e;
    a = QQ;
    b = WW;
    c = EE;
    d = EE;
    e = TT;
    printf("%d %d %d %d %d\n", a, b, c, d, e);
    a = RR + TT;
    printf("%d", a);
}

结果: 0 1 2 3 4 7

错误 C2440:“=”:无法从“int”转换为“main::BB” 1> 转换为枚举类型需要显式强制转换(static_cast、C 风格强制转换或函数风格强制转换

当鼠标悬停在 equal(=) 上时,我可以看到“不能将“int”类型的值分配给“QQ”或“WW”等类型的实体。

如何获得结果?

最佳答案

在main中,第一行声明一个枚举类型并将其命名为AA。在第二行中,您尝试声明 5 个 enum BB 类型的变量,但您尚未定义这些变量。

这行不通。如果您声明的变量属于您刚刚声明的enum AA 类型,则该代码可能有意义。

将这些 B 更改为 A 就可以了。

此外,在 Visual Studio 中要将代码编译为 C 代码而不是 C++ 代码,只需将源文件名从 blabla.cpp 更改为blabla.c.

关于c - 如何在 Visual Studio 2012 中使用枚举,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25421267/

相关文章:

c - 当操作系统取消固定远程内存缓冲区时,RDMA WRITE/READ 的行为如何?

c - 在汇编代码中找不到跳转表

c++ - ostream::write 不写整个结构?

c# - 在每个测试方法运行之前或之后自动执行方法/代码

Java:枚举的通用方法

visual-studio - 有没有办法在程序未运行时获取 Visual Studio 中枚举的整数值?

c - -255 到 255 范围内的有符号字符溢出是否未定义?

visual-studio-2012 - 如何使用 xamarin 在 Visual Studio 中构建 Mac 主机

c# - 将枚举的内容获取到下拉列表

c - 我应该用哪种方式编译我的 C 代码?