这个是在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语言,并且现在的编译器都很智能,所以你即使混乱了,有时候也是没有错误的


☟☟可点击下方广告支持一下☟☟

最后修改:1970 年 01 月 01 日
请我喝杯可乐,请随意打赏: ☞已打赏列表