CC实战027遍历enum枚举类型
什么是枚举
枚举是C语言中的一种基本数据类型,它可以用来声明一组常数(静态常量)。当一个变量有几个固定的可取值时就可以将其定义为枚举类型。枚举可以将变量值直接列出,使用时变量值只限于列举出的值范围内。很简单的例子就是日历中每周都有固定的7天,那么我们在定义星期的时候就可以用枚举。
枚举定义
枚举通过关键词enum来定义枚举类型,在枚举中声明该枚举类型的变量并使用该变量存储枚举元素的数值。基础类型表示该枚举中定义的所有枚举数值,枚举可以声明 byte、sbyte、short、ushort、int、uint、long 或 ulong 等基础类型,如果没有声明基础类型则默认为int类型。枚举成员是该枚举类型的常量,所以枚举成员不能具有相同的变量名。如果枚举成员没有赋值则默认第一个枚举成员值为0,往后的枚举成员值会依次顺序加1。
枚举定义系统信息
在获取华中数控设备的系统信息时发现该API函数可以获取到的系统信息相当的多,系统通过定义枚举来区分这些数据。我们要获取这些数据的时候就需要通过指定对应的枚举值来获取对应的信息。为了可以一次性获取系统信息我们需要遍历所有的枚举值,枚举类型的每个元素都是整数,而C++没有提供枚举类型的迭代器也不能在操作后直接赋新值给原对象(枚举没有操作符++),所以没法像数组那样直接遍历。
遍历枚举
那么我们要怎么才能实现枚举的遍历呢?这里我们需要用到强制类型转换,这样遍历在结束后就可以获取到下一个枚举成员了。遍历范围可以通过定义枚举成员变量来限制,这里最后一个枚举成员为HNC_SYS_TOTAL。这里主要是获取的值类型不同SDK提供了不同的API接口,下面将部分判断省略了:
总结
枚举 类型(enumeration)是 C++ 中的一种派生数据类型,它是由用户定义的若干枚举成员的集合。枚举类型的作用域一般是整个文件或者类内,当在整个文件夹时所有枚举成员不能有相同的,当在类内时不同类的枚举成员可以有相同的。 以上内容是小编给大家分享的【C/C++实战027:遍历enum枚举类型】,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。
为了方便学习,下面附上本文用到的源码://enum语法结构 访问修辞符 enum 枚举名:基础类型 { 枚举成员, MON = 1 , //变量名 = 变量值 ... }; ------------------------------------------- enum WeekDay { MON, TUE, WED, THU, FRI, SAT, SUN } -------------------或者-------------------- enum WeekDay { SUN = 7,MON = 1, TUE, WED, THU, FRI, SAT } ---------------------------------------------- enum HncSystem { HNC_SYS_CHAN_NUM = 0, /*!< 获取系统通道数 {Get(Bit32)} */ HNC_SYS_PLC_ONLINE, /*!< PLC在线调试 {Get(Bit8[48]) Set(Bit8[48])} */ HNC_SYS_TOTAL }; enum HncSystem s; Bit32 ret,ret1; Bit32 intValue; Bit8 strValue[48]; for (s = HNC_SYS_CHAN_NUM; s <= HNC_SYS_TOTAL; s = (HncSystem)(s + 1)){ switch (s) { case HNC_SYS_CHAN_NUM: /*!< 获取系统通道数 {Get(Bit32)} */ case HNC_SYS_MOVE_UNIT: /*!< 长度分辨率 {Get(Bit32)} */ case HNC_SYS_TURN_UNIT: /*!< 角度分辨率 {Get(Bit32)} */ ret = handle->HNC_SystemGetValue(s, intValue); break; case HNC_SYS_NCK_VER: /*!< NCK版本 {Get(Bit8[32])} */ case HNC_SYS_DRV_VER: /*!< DRV版本 {Get(Bit8[32])} */ case HNC_SYS_PLC_VER: /*!< PLC版本 {Get(Bit8[32])} */ ret1=handle->HNC_SystemGetValue(s, strValue); break; default: break;
818买三千价位手机?这几款都值得入手,总有适合你的在开学季来临前,我们迎来了优惠不少的818,让不少人准备在这个时间段入手新机。今年的818中,手机的优惠都相当不错,其中不少机型的价格比618更低,的确是一个买手机的好时机,相信大
阿里的瓜刺痛了谁随着互联网的兴起,互联网经济的发展有目共睹。阿里巴巴作为互联经济的先驱,本就人红是非多,从余额宝到蚂蚁金融可以说都给这个还没有完善制度的行业打了一剂猛药,打破了平衡,引起了轩然大波
警方通报阿里女员工被侵害案,事实证明没有反转8月14日,警方发布通报表示,两男子涉嫌强制猥亵,无证据证明强奸。新京报我们视频截图8月14日,济南市公安局槐荫区分局通报阿里女员工被侵害案相关情况。根据中华人民共和国刑法第237
警方最新通报阿里女员工说谎了?大家怎么看警方最新通报这份14号的通报,看起来做了尽可能的客观描述,没有任何推测,仔细看看,真是要气死人了。因为通报比较长,可能有些友友们没耐心看完,我直接贴几个通报里的重要结论给大家先。1
比特币最便宜的时候多少钱?如果回到过去,靠买比特币能发财吗?2010年5月18日,一位名叫LaszloHanyecz的程序员在比特币论坛上表示希望用一万枚比特币换取两份PapaJohns的大披萨(当时价值40美元),随后逐渐有人注意到了这个
骁龙888和骁龙888Plus差多少?现在买安卓旗舰选哪款更划算?相信近日有密切关注数码圈的小伙伴,都能注意到市场上的动态可谓是相当的活跃,尤其是小米MIX4以及荣耀Magic3系列两款新机的发布更是点燃了各种热议话题。当然,除了屏下摄像头技术以
苹果手机真的好用吗?苹果手机真的很好用吗?为什么一堆人买苹果手机,苹果手机中国市场占有率据说已占道全球70,也就是,全球所有国家销量才占30,光中国就占70。说明苹果手机在其它国家苹果手机都卖不动,难
就算热搜凉了,我也要骂他恶臭酒局文化早日凉凉,再单薄的水滴,终将成为巨浪,不要让日本之耻,在中国蔓延。最近一周,关于阿里P7涉嫌性侵女下属的事件,想必大家都知道得七七八八了。女方无奈,只能在公司食堂发传单
好音质与低延迟兼备,还有长续航,南卡N2s蓝牙耳机体验自从3。5mm耳机接口在手机上消失后,现如今真无线蓝牙耳机的普及度已经非常高了,几乎大多数人在为手机选择耳机配塞时都将真无线蓝牙耳机作为首要选择。确实,与有线耳机相比,真无线蓝牙耳
流畅度媲美iOS!小米MIX4K40系列连夜推送MIUI12。5增强版在前几天的小米MIX4发布会上,小米官方正式宣布了MIUI12。5增强版,并表示,虽然版本号依然为12。5,但是却不亚于大版本升级,官方称其主打流畅度提升和更低的功耗。而在今日凌晨
天猫超市账号激活不了怎么办?一天猫超市账号激活不了怎么办?二天猫超市绿色入驻通道三天猫超市入驻所需条件一天猫超市账号激活不了怎么办?天猫超市是天猫新设立的自营平台,是完全脱离于天猫的独立平台,主要是对标京东的