enum没有枚举名字也可以

这个C语言的枚举为什么开头只有一个“enum”而没有枚举名?这样的是什么作用? 
 
 
检举|2013-03-10 15:59 a313785 | 分类:C/C++ | 浏览66次
/* PRISM54_HOSTAPD ioctl() cmd: */
enum {
 PRISM2_SET_ENCRYPTION = 6,
 PRISM2_HOSTAPD_SET_GENERIC_ELEMENT = 12,
 PRISM2_HOSTAPD_MLME = 13,
 PRISM2_HOSTAPD_SCAN_REQ = 14,
};
 
这种枚举有什么作用?
 
没有变量也一样使用。

其实枚举只是定义了一连串的变量的值,如果值连续,你只需要给其中一个赋值就可以了,其他的不用管。有没有枚举名称无所谓的,在C语言中。
追问
那这种无名枚举有什么作用?不用可以吗?
回答
用名的枚举相当于告诉你,以下枚举的变量属于哪个种类,比如枚举了星期一到星期日,然后给枚举一个名称星期,这样就告诉你枚举变量的都是星期几。可读性好点而已。不用名称也可以,可读性差点而已。不用枚举,就用#define吧。说到底其实跟define意思差不多,define要每个写值,枚举不用。
追问
那我问的这个根本没有枚举名和变量名,它有什么意义,去掉可以吗?其他量如何用它呢?(老师让读的程序中有这段)。
回答
/* PRISM54_HOSTAPD ioctl() cmd: */
enum {
 PRISM2_SET_ENCRYPTION = 6,
 PRISM2_HOSTAPD_SET_GENERIC_ELEMENT = 12,
 PRISM2_HOSTAPD_MLME = 13,
 PRISM2_HOSTAPD_SCAN_REQ = 14,
};

int cmd;
cmd = PRISM2_HOSTAPD_SET_GENERIC_ELEMENT;//这样写可以更清楚自己表达的意思。
等价于
cmd = 12;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值