求教C语言枚举类型的问题

2025-01-17 05:25:58
推荐回答(2个)
回答1:

首先,枚举类型实际上是将某些离散值一个显示的标记,比如:
enum season{spring,summer,autum=3,winter};
如果没有特殊指定,系统会默认从0开始进行映射。spring =0;summer=1.
如果有特别需求,可以直接写出,如autum=3;此时,winter没有显示的映射,所以直接为上一项+1,winter=4;
实际上,上述的“=”是“相当”而不是相等的意思。
所以sizeof(winter) == sizeof(int),具体数值按操作系统而定。
至于spring等符号,仅仅是符号……

回答2:

LZ看问题已经很细致了。
sizeof实际上是查看后面对象类型的内存长度。
所以sizeof(summer) 和sizeof(season)、sizeof(enum)实际上是等价的。