我在C中声明了此枚举类型:

enum months { JAN = 1, FEB, MAR, APR, MAY, JUN,
              JUL, AUG, SEP, OCT, NOV, DEC } ;

当我试图在main()中创建月份类型的变量时,使用:
months month;

它给出以下错误:
未知类型“月”
但当我这样声明时:
enum months { JAN = 1, FEB, MAR, APR, MAY, JUN,
              JUL, AUG, SEP, OCT, NOV, DEC } month;

它工作得很好。我认为这两种方法都是有效的,为什么会有错误?

最佳答案

您需要在它周围包装一个typedef,否则您可以通过声明它是一个enum来访问它。
例子:

typedef enum { JAN = 1, FEB, MAR, APR, MAY, JUN,
          JUL, AUG, SEP, OCT, NOV, DEC } months;
months month;

或者
enum months { JAN = 1, FEB, MAR, APR, MAY, JUN,
          JUL, AUG, SEP, OCT, NOV, DEC };
enum months month;

关于c - C中的枚举类型变量声明,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29107826/

10-09 09:00