将无效的 int 值强制转换为枚举

Cast invalid int value to enum

本文关键字:转换 枚举 无效 int      更新时间:2023-10-16

假设我有

enum Foo { Foo0, Foo1, Foo2 };

请注意,没有显式声明的 Foo 常量具有值 3(它们是 0、1 和 2)。

以下是否调用未定义的行为?

Foo yay = (Foo) 3;

特别要注意的是,3可能适合Foo的内部表示。

它的定义很好。为了表示值012,类型Foo必须至少有两个位,这也足以表示3