我在头文件中看到以下内容
typedef enum Test__tag {
foo,
bar
} Test;
我想知道为什么要使用typedef;我可以使用
enum Test{
foo,
bar
};
是吗?
答案 0 :(得分:11)
适用于C用户。基本上当你走typedef
方式时,在C中你可以说
Test myTest;
而当你刚使用enum Test
时,你必须声明一个这样的变量:
enum Test myTest;
如果只使用C ++,则不需要它。所以它也可能只是由习惯于这种风格的C程序员编写的。
答案 1 :(得分:3)
是的,在C ++中,只需编写
即可声明x
而不使用typdef
enum Test{
foo,
bar
};
Test x;
但是,如果您在C中尝试相同的操作,则需要将x
声明为
enum Test x;
或使用typedef。
因此typedef可能是C遗留的习惯(除非头文件实际上是C)。