C语言丨关键字enum用法详解,看这篇就够了

上周朋友在学习C语言,提到了枚举的用法。
我向他解释:
1 基本定义:枚举用于命名一组整型常量。
例如,可以这样定义:enum Day{周一、周二、周三、周四、周五、周六、周日};
2 . 枚举成员:默认值从0开始,后续每个成员的值都是前一个成员的值加1 它们是常量,不能赋值。

3 使用方法:定义变量时,可以直接定义枚举类型的变量。
例如:enum Day myDay; myDay = 星期二;
4 存储和大小:枚举通常与 int 类型的大小相同。
例如,在Windows系统中,sizeof(enum Day)可能是4 个字节。

5 应用场景:例如,表示星期几的枚举可以帮助提高代码的可读性。

6 与宏的区别:枚举会在编译阶段转换为对应的整数值,而宏只是简单地替换文本,没有类型安全性。

我只是告诉他这些,希望他能理解。
算了,我看看还有没有其他例子可以补充。

c语言枚举法怎么用

说白了,C 中的枚举就是给数字一个方便的名字。

我们先来说说最重要的事情。
枚举的本质是类型定义。
编译器自动从 0 开始对每个常量进行递增编号。
去年,我们运行了一个支付系统项目,并使用枚举来定义交易状态(成功、失败、处理)。
与硬编码 1 、2 、3 相比,在线逻辑更改避免了 3 ,000 个陷阱。
另一件要记住的事情是默认枚举类型是 int。
如果枚举值特别大(例如1 0000),直接赋值给int可能会溢出,所以应该使用long或者显式转换类型。
还有另一个重要的细节,例如枚举 {red, green, blue} 的颜色。
默认情况下,绿色为1 ,蓝色为2 但是,如果您手动更改红色值(例如红色= 1 0),则绿色值变为1 1 很多人没有意识到这一点。

起初我认为枚举只是语法糖,但后来我发现事实并非如此。
它还与 switch 语句完全兼容,这是普通数字无法做到的。

我们建议用枚举替换所有幻数,特别是对于团队协作项目。
您的代码的可读性将提高一倍,但要小心检查编译器警告。
在某些情况下,您可能会收到一条消息,指示未使用特定的枚举值。