C语言枚举类型enum详解(3)

 编译器在编译阶段会有警告测试了枚举类型的最大值,下面来测试下枚举类型的最小值

enum test{m1=INT_MIN}; printf("%d\n%d\n", m1, INT_MIN);

运行结果:

C语言枚举类型enum详解

上面的代码没有问题,下面来测试一下越界的赋值

enum test{m1=INT_MIN-1}; printf("%d\n%d\n", m1, INT_MIN);

和上面相同,编译器也会有警告

为什么“枚举类型描述的是一组整型值的集合”其实不太妥当?

上面这句话很容易让读者以为enum类型和int类型是等价的,好像可以把int型的数据直接赋值给enum变量,实际上是不行的,需要进行强制类型转换,C语言提供了一种称为“枚举”的类型,其中一个枚举常量的占的字节数为4个字节,恰好和int类型的变量占的字节数相同,假设把这些枚举常量说明为整型,字符型或其他类型显然是不妥当的,因为枚举类型是一种基本数据类型,而不是一种构造类型,它不能再分解为什么基本类型。

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/1a24b5d683c53c07b594be3463780d64.html