我正在使用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 GT;转换为枚举类型需要显式转换(static_cast,C样式转换或函数样式转换
当鼠标悬停在等于(=)时,我可以看到'类型为“int”的值不能分配给“QQ”或“WW”等类型的实体。
我如何得到结果?
答案 0 :(得分:1)
在main中,在第一行,您声明一个枚举类型并将其命名为AA
。在第二行,您尝试声明5个类型为enum BB
的变量,这些变量尚未定义。
这不起作用。如果您声明的变量属于类型enum AA
,即您刚刚声明的变量,则代码可能有意义。
将这些B
更改为A
,您就可以了。
此外,在Visual Studio中将代码编译为C代码而不是C ++代码,只需将源文件名从 blabla.cpp 更改为 blabla.c