在C++中,这两种定义枚举类型的关键字用法和效果相同,推荐使用前者。typedef enum多用在C语言中。
在C语言中,如果使用typedef enum定义一个枚举类型,比如:
1 typedef enum TokenType 2 { 3 blah1 = 0x00000000, 4 blah2 = 0X01000000, 5 blah3 = 0X02000000 6 } MyType;
则可以通过 TokenType MyType 使用所定义的枚举类型。
如果使用enum定义一个枚举类型,比如:
1 enum TokenType 2 { 3 blah1 = 0x00000000, 4 blah2 = 0x01000000, 5 blah3 = 0x02000000 6 }MyType;
则需要通过 enum TokenType MyType 使用所定义的枚举类型。
ref:
[1] https://stackoverflow.com/questions/385023/why-do-you-use-typedef-when-declaring-an-enum-in-c