我看到很多场合(谷歌搜索)枚举的声明如下:
enum enum_tag {a = 0, b, c, d} tag_again;
enum enum_tag {a = 0, b, c, d};
或者
enum {a = 0, b, c, d} tag_again;
有时,似乎 enum_tag 是类型,而 tag_again 是变量名,但如果 enum_tag 不存在,则 tag_again 有时似乎被用作其中之一......它是哪一个?
如果我要编码
enum {a = 0, b, c, d} tag_again;
tag_again 是枚举类型还是无名枚举类型的变量?
继续我的谷歌搜索,MSDN 给了我答案:MSDN C Enum 声明
enum enum_tag {a = 0, b, c, d} tag_again;定义枚举类型 enum_tag 并声明该类型的变量:tag_again。
enum enum_tag {a = 0, b, c, d};定义 enum_tag 的枚举类型
和
enum {a = 0, b, c, d} tag_again;声明一个无名枚举类型的变量 tag_again (正如我所想的)