这个是在stackoverflow上面看到的,参考链接:http://stackoverflow.com/questions/385023/why-do-you-use-typedef-when-declaring-an-enum-in-c
就比如说:
typedef enum ssTokenType
{
blah1 = 0x00000000,
blah2 = 0X01000000,
blah3 = 0X02000000
} TokenType;enum TokenType
{
blah1 = 0x00000000,
blah2=0x01000000,
blah3=0x02000000
};
这两个的区别主要是在c语言上面不同
严格意义上来说:
如果你使用了第一种
你必须这样定义
TokenType my_type;
而如果使用了第二种
则这样定义
enum TokenType my_type;
而在C++里面你必须使用第二种表达方式
enum TokenType
{
blah1 = 0x00000000,
blah2 = 0X01000000,
blah3 = 0X02000000
};
但是使用这样的定义
TokenType foo;
当然这是严格意义上来说,但是具体使用上面,因为C++兼容C语言,并且现在的编译器都很智能,所以你即使混乱了,有时候也是没有错误的版权属于:胡东东博客
自2017年12月26日起,『转载以及大段采集进行后续编辑』须注明本文标题和链接!否则禁止所有转载和采集行为!
☟☟如文章有用,可点击一次下方广告支持一下☟☟