Eon*_*nil 7 c standards enums casting
我有两个枚举.
enum A { A1=1, A2=2 }
enum B { B1=1, B2=2 }
Run Code Online (Sandbox Code Playgroud)
这是否符合C的标准?
A a = A1;
B b = a;
Run Code Online (Sandbox Code Playgroud)
(与Clang编译得很好,但我不能确定这是标准还是扩展行为)
它符合标准,但C99规范提到某些实现可能会生成警告:
实施可能会在许多情况下产生警告,其中没有一个被指定为本国际标准的一部分.以下是一些较常见的情况.
- 赋值为枚举类型的对象,而不是通过赋值该类型的成员的枚举常量,或具有相同类型的枚举变量,或返回相同枚举类型的函数的值( 6.7.2.2).