我正在使用 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/