C ++中的Typedef枚举声明

时间:2012-03-02 10:28:12

标签: c++ enums typedef

我的问题很简单。 在C ++中合法推迟在如下声明中的typedef? gcc接受代码没有问题,但它是一种弃用的方式?我问这个是因为每次在指令开头都有typedef的样本。

enum _mytype {   
 A=1,   
 B=2 
} typedef mytype;

2 个答案:

答案 0 :(得分:4)

typedef X Y;

X typedef Y;

只是两种在C ++中编写完全相同的东西的方法。两者都没有被弃用,只是第一个被更常用,可能是因为你可以把它读作“typedef X as Y”。

答案 1 :(得分:-2)

在C中你经常使用

typedef enum 
{
} what_ever;

因为在C“enum what_ever”中会定义一个类型“enum what_ever”而不是“what_ever”。但是在C ++中并非如此,除了向后兼容性之外,在编写C ++时不应该在这种情况下使用typedef。