这个是在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语言,并且现在的编译器都很智能,所以你即使混乱了,有时候也是没有错误的
版权属于:东哥笔记 - DongGe.org
本文链接:https://dongge.org/blog/86.html
自2017年12月26日起,『转载以及大段采集进行后续编辑』须注明本文标题和链接!否则禁止所有转载和采集行为!