C语言 enum(枚举)

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

enum这个东西,说白了,就是给一个整数起一个名字。
您不必一直担心输入数字。

例如,如果定义数字 DAY{MON, TUE, WED, THU, FRI, SATURDAY, SUN};那么MON是一个整数,默认是0,TUE是1 ,WED是2 ,以此类推。

如果要指定具体值,例如MON是星期一,值为1 ,可以输入数字DAY{MON=1 , TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY};因此,TUE 为 2 ,WED 为 3 ,依此类推。

这比宏更好。
宏在预处理期间被替换,而枚举在编译期间被处理。
例如,如果使用宏定义MON 1 ,如果出错而没有找到,编译就会失败。
对于enum,编译器会检查你是否正确使用它。

使用枚举的示例: c 包括
Enum DAY{MON=1 ,TUE,WED,THURS,FRI,SAT,SUN};
int main() { 枚举今天 DAY = MON; printf("今天是 %d\n", 今天); 返回0;
今天的值是 1 ,对应于 MON。

请注意,枚举成员无法更改其值。
例如,你不能写today = 2 ;这行不通。
它必须是 DAY 枚举变量才能分配这样的值。

在内存中,enum 通常与 int 大小相同。
例如,sizeof(enum DAY) 是 4 个字节。
这与使用define MON 1 无关。
宏替换后,它变成了普通数字。

总而言之,枚举意味着命名一个整数数组并在编译时对其进行处理,这比宏更好。