c++之enum(枚举)可以没有枚举名

转载自https://blog.csdn.net/u013591613/article/details/71215000

C_enum(枚举)可以没有枚举名

如果声明枚举类型时没有指定枚举名,其作用就和#define类似,比如以下代码:

enum {
    STATION_IDLE = 0,
    STATION_CONNECTING,
    STATION_WRONG_PASSWORD,
    STATION_NO_AP_FOUND,
    STATION_CONNECT_FAIL,
    STATION_GOT_IP
};
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

这里声明了一个枚举类型确没有指定其枚举名,那么它就相当于用#define定义了六个名称和其对应的值,从0开始赋值每次加1,相当于:

#define     STATION_IDLE = 0;
#define     STATION_CONNECTING = 1;
#define     STATION_WRONG_PASSWORD = 2;
#define     STATION_NO_AP_FOUND = 3;
#define     STATION_CONNECT_FAIL = 4;
#define     STATION_GOT_IP = 5;
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

只不过eunm类型表示的是一个确定的值,而这里#define了六个值,可见如果要表示同一个事件的不同反馈status,使用这种没有枚举名的枚举效果更好。

原文地址:https://www.cnblogs.com/zhougong/p/8876515.html