鱼C论坛

 找回密码
 立即注册
查看: 2726|回复: 8

[已解决]求一个枚举类型 enum 的完整用法

[复制链接]
发表于 2022-12-22 13:01:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 zhangjinxuan 于 2022-12-22 13:16 编辑

如题,网上的资料有点难以理解,即使理解了,也觉得 enum 没有什么作用,是我理解不对吗

就想求大佬们给出enum的完整用法,在C++中, enum除了搞什么0123456还有什么用吗?
最佳答案
2022-12-22 17:57:36
个人理解
enum 的价值主要在给某个(主要是)整数一个名字,让这个值自己解释自己。我说令 0 表示红色, 1 表示绿色, 2 表示蓝色,不如定义一个枚举类型,让红色就是 Red ,绿色就是 Green ,蓝色就是 Blue ,既方便阅读还避免了自己排列数值可能出现的错误(不小心排了两个 1 之类)。
至于归类的效果, C 还会弱一些因为没有严格保证,和整数之间可以随意隐式转换。 C++ 的 enum class 则强化了限制,禁止不同枚举类型的枚举值之间和到整数之间的隐式转换,可以避免一些隐蔽的错误,算是一种语法盐。
C 的枚举类型还有一个小 hack ,因为枚举值是编译期常量,当不想用 define 预处理的时候可以用 enum 来指定数组长度
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-12-22 13:11:57 | 显示全部楼层
我感觉确实什么用都没有 基本上用不到
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-22 13:14:21 | 显示全部楼层
tommyyu 发表于 2022-12-22 13:11
我感觉确实什么用都没有 基本上用不到

确实什么也没用难道这个enum就是来搞什么0123456之类的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-22 13:15:39 | 显示全部楼层
zhangjinxuan 发表于 2022-12-22 13:14
确实什么也没用难道这个enum就是来搞什么0123456之类的

不知道我现在只能想起来之前好像学过它,但因为学完之后一次没用就忘了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-22 13:16:58 | 显示全部楼层
tommyyu 发表于 2022-12-22 13:15
不知道我现在只能想起来之前好像学过它,但因为学完之后一次没用就忘了

啊这
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-22 13:19:25 | 显示全部楼层
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-12-22 13:20:45 | 显示全部楼层
tommyyu 发表于 2022-12-22 13:19
Python竟然有一个同名模块,功能也一样https://blog.csdn.net/ProQianXiao/article/details/113481092{:1 ...

我看看
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-22 17:57:36 | 显示全部楼层    本楼为最佳答案   
个人理解
enum 的价值主要在给某个(主要是)整数一个名字,让这个值自己解释自己。我说令 0 表示红色, 1 表示绿色, 2 表示蓝色,不如定义一个枚举类型,让红色就是 Red ,绿色就是 Green ,蓝色就是 Blue ,既方便阅读还避免了自己排列数值可能出现的错误(不小心排了两个 1 之类)。
至于归类的效果, C 还会弱一些因为没有严格保证,和整数之间可以随意隐式转换。 C++ 的 enum class 则强化了限制,禁止不同枚举类型的枚举值之间和到整数之间的隐式转换,可以避免一些隐蔽的错误,算是一种语法盐。
C 的枚举类型还有一个小 hack ,因为枚举值是编译期常量,当不想用 define 预处理的时候可以用 enum 来指定数组长度
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-12-24 10:20:19 | 显示全部楼层
tommyyu 发表于 2022-12-22 13:11
我感觉确实什么用都没有 基本上用不到

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-12-26 00:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表