电子说
枚举类型的使用分两步:
1.定义一个特定的枚举类型
2.定义该枚举类型的变量并使用
以下学习内容均已经过实测:
1.定义枚举类型的值只能是整型常量,正数、负数和零都可以,但不可以是浮点数
2.对枚举类型做sizeof试验:
(1)我在stm32单片机上试验,也即ARM编译器上,枚举类型的存储大小按定义的值里面需要占内存最大的给,即1、2、4、8都有可能,遵循够用原则
(2)而在windows上试验,即GNU GCC编译器上,枚举类型的存储大小固定为4(但当定义中有超过4个字节大小的值时,存储大小变为8)
(3)无论哪个编译器,枚举类型的值最长只能为8个字节,更长的大小不接受
试验参考代码,可以自己改定义中的值大小去测结果:
enum DAY
{
MON = 0, TUE, WED, THU, FRI, SAT, SUN
};
enum DAY day;
int main()
{
printf("sizeof(day):%d\\r\\n", sizeof(day));
printf("sizeof(enum DAY):%d\\r\\n", sizeof(enum DAY));
getchar();
}
3.如何用extern修饰枚举类型
(1)错误的修饰代码,在类型的定义前加extern将起不到任何作用,因为extern是用来修饰变量的。以下代码不会报错,但会警告,extern出现在这里起不到任何作用
extern enum DAY
{
MON = 0, TUE, WED, THU, FRI, SAT, SUN
};
(2)正确的修饰代码,在枚举变量定义前加extern
extern enum DAY day;
全部0条评论
快来发表一下你的评论吧 !