enum结构类型中的变量个数,最大能够定义2^32个。因此有些编译器直接将enum类型的大小固定为4字节。
嵌入式软件开发中,内存相对宝贵,编译器一般根据enum结构类型中定义的变量的值分配enum类型大小。
比如:
enum enumType{MONDAY,TUESDAY,WENSDAY = 0XFF};
那么enumType的大小为1字节。
enum enumType{MONDAY,TUESDAY,WENSDAY = 0X0100};
那么enumType的大小为2字节。
enum enumType{MONDAY,TUESDAY,WENSDAY = 0X010000};
那么enumType的大小为3字节。
enum enumType{MONDAY,TUESDAY,WENSDAY = 0X01000000};
那么enumType的大小为4字节。
即编译器为enum类型的变量分配的内存需要能够存下enum定义的最大值。
enum enumType{MONDAY,TUESDAY,WENSDAY = 0X0100};
那么enumType的大小为2字节。