第1部分
在C中,声明这样的枚举是否有任何区别:
typedef enum{VAL1, VAL2,} firstEnum;
并且像这样:
enum secondEnum{Val1, Val2,};
除了使用secondEnum之外,你必须写:
enum secondEnum...;
第2部分
另外,我认为以下内容是等效的:
enum{Val1, Val2,} enum1;
和
enum thirdEnum{Val1, Val2,}
enum thirdEnum enum1;
由于
答案 0 :(得分:2)
在第1部分中,显然存在差异 - 首先,您将({1}}声明为({1}}作为(匿名)枚举类型,而在第二部firstEnum
中是{枚举类型,并没有涉及typedef。第一个是建议的,因为你已经注意到易用性。
在第2部分中,两者不相等 - 第一部分声明了一个匿名枚举类型,并将typedef
定义为该类型。第二个声明了一个命名的枚举类型,然后将secondEnum
声明为该类型。重要的是你可以在代码的其他部分使用命名类型,而在第一个你不能在其他地方使用它,所以你可能不得不使用整数值作为枚举类型的值的别名。