4

我在头文件中看到了以下内容

typedef enum Test__tag {
    foo,
    bar
} Test;

我想知道为什么使用 typedef;我可以用

enum Test{
    foo,
    bar
};

那正确吗?

4

2 回答 2

11

它适用于 C 用户。基本上当你走的时候typedef,在C中你可以说

Test myTest;

而当你刚刚使用时enum Test,你必须声明一个像这样的变量:

enum Test myTest; 

如果只使用 C++,则不需要。所以它也可能只是由习惯这种风格的 C 程序员编写的。

于 2013-06-10T09:17:48.013 回答
3

是的,在 C++ 中,您x只需编写即可在没有 typdef 的情况下声明

 enum Test{
    foo,
    bar
};
Test x;

但是,如果您要在 C 中尝试相同的操作,则需要声明x

 enum Test x;

或使用 typedef。

所以 typedef 可能是 C 遗留下来的一个习惯(除非头文件实际上是 C)。

于 2013-06-10T09:22:08.803 回答