![]() |
1
34
从一个枚举类型转换到另一个枚举类型需要通过整数类型(可能是源的基础类型,不确定)。 在C和C++中允许从枚举到整数类型的隐式转换。在C中允许从整数类型到枚举的隐式转换,但不允许在C++中进行。 基本上,C++是更安全的类型。它试图阻止你这样做:
如果您想在C++中执行这个枚举枚举转换,可以使用Type/DeCuff/Boost类型或等效。在海湾合作委员会:
不过,通常这样做是没有意义的。在大多数情况下,枚举(尤其是匿名枚举)是“枚举类型”。它们恰巧是C和C++标准作为“戴着滑稽帽子的整数”实现的,但这并不意味着
|
![]() |
2
1
我猜这是因为C++中更严格的打字。
在C中
你可以看看 this example on codepad ,它给出了比编译器更详细的错误描述。 |
![]() |
3
0
编译器不知道如何隐式地将一个枚举数据类型转换为另一个枚举数据类型。 试试下面的。
|
![]() |
Community wiki · C中有哪些耗时的操作? 1 年前 |
![]() |
Community wiki · 将所有处理器电源都投入到任务中 1 年前 |
![]() |
Community wiki · C++为C添加了什么?[已关闭] 1 年前 |
![]() |
Community wiki · 打印1到1000,不带循环或条件 1 年前 |