目录
在 C 语言中,枚举(Enumeration)是一种基本数据类型,它允许程序员定义一组命名的整型常量,提高代码的可读性和可维护性。本文将深入探讨 C 语言枚举的语法、特性、使用场景以及一些高级技巧。
一、枚举的基本概念
1. 定义与语法
枚举类型使用关键字 enum 定义,其基本语法如下:
enum EnumName {
VALUE1, // 默认值为0
VALUE2, // 默认值为1
VALUE3 = 10, // 显式赋值为10
VALUE4, // 紧随前一个值,为11
// ... 更多值
};
枚举成员(如 VALUE1、VALUE2)本质上是整型常量,默认从 0 开始递增。也可以通过赋值语句显式指定成员的值。
2. 枚举变量的声明
定义枚举类型后,可以声明该类型的变量:
enum Color { RED, GREEN, BLUE };
enum Color favorite_color; // 声明枚举变量
favorite_color = GREEN; // 赋值
或者在定义枚举类型的同时声明变量:
enum { MON, TUE, WED, THU, FRI, SAT, SUN } today;
today = FRI;
二、枚举的特性
1. 整型常量的本质
枚举成员是整型常量,可以直接参与算术运算:
enum Weekday { MON = 1, TUE, WED, THU, FRI, SAT, SUN };
int tomorrow = TUE + 1; // tomorrow的值为3(即WED)
2. 作用域规则
枚举成员的作用域与枚举类型本身相同。如果在同一作用域内定义两个具有相同成员名的枚举类型,会导致编译错误:
enum Status { OK, ERROR };
enum Result { SUCCESS = OK, FAILURE }; // 正确,OK是整型常量
// enum Another { OK, CANCEL }; // 错误:重复定义OK
3. 内存占用
枚举变量的大小通常与 int 相同,但具体取决于编译器实现。例如:
enum Boolean { FALSE, TRUE };
printf("Size of enum Boolean: %zu by

最低0.47元/天 解锁文章
463

被折叠的 条评论
为什么被折叠?



