C语言枚举变量可以赋为负值吗

嘿,这件事相当复杂。
当时正在学C语言,发现枚举有点意思。
例如,您定义枚举类型如下:
和祈祷{星期一、星期二、星期三、星期三、星期五、星期六、星期日};
周一至周日这里是所有成员的名单。
然后,你可能会想,嘿,这些值从 0 开始,按顺序递增,对吧?因此,根据 C 语言标准,默认值是类似的。
但有一个问题。
如果你想在枚举中放入负值,比如-1 ,这是一个问题。
因为在3 2 位设备上,枚举类型默认是没有符号的,占用4 个字节。
所以如果你写-1 ,它就变成了2 ^3 2
1 ,这是一个非常大的正数。
你绝对不想要这个。

然后我了解到,根据C标准,枚举常量的类型是int,但是枚举变量的类型可以由有符号或无符号的char整数组成。
即不仅可以将枚举成员的值给枚举变量赋值,还可以给其他形式的值赋值。
因此,理论上,您可以分配枚举成员范围之外的枚举变量的值。

但是这里有一个大洞。
C语言本身并不保证枚举变量只能接受枚举成员中定义的值。
也就是说,如果你不小心的话,你就不应该使用这个价格。
所以这个问题主要还是要看程序本身。
记得有一次,我在写代码的时候,因为没有注意细节,犯了一个小错误。
当时我很困惑,但后来我意识到,也许我有点极端,我应该更加小心。

C语言——枚举enum

等等,我昨天写代码的时候遇到了一件奇怪的事情。
明明是枚举类型,但是编译器居然报错说类型不匹配。
我盯着屏幕看了半天,发现我把enumWeekday{MON,TUE,WED}声明的变量weekday1 赋值给了另一个enumWeekday变量weekday2 结果,我忘记将 weekday2 定义为 enumWeekday 类型。
其实昨天明明调试好了,今天怎么又忘记了呢?

c语言中enum类型的用法!

2 02 3 年,我的朋友问我什么是枚举类型,我向他解释了这一点。
枚举类型定义了一些特定值,例如每周 7 天。
定义格式为enum枚举名{枚举值表}。
然后我说变量只能取这些定义的值,不能随意赋值,像sun=5 ;是错误的。
他还问我枚举值的顺序是否从0开始,然后我举了一个例子a=(enumweekday)2 ;解释强制类型转换。

上周我的朋友问我如何使用枚举变量。
我告诉他,定义和使用枚举变量有几种方法,比如直接在枚举定义中指定变量,或者先定义枚举类型再定义变量。
我还提到枚举值是常量,不能像普通变量一样被赋值。

2 02 3 年4 月,我给他看了另一个例子,解释了如何通过枚举变量控制数组的元素,然后使用switch语句根据枚举值打印不同的信息。
他说有点复杂,我慢慢让他明白。
算了,我可能得找时间跟他详细解释一下了。

C语言 enum(枚举)

上星期。
我的那个朋友。
C语言中的枚举。

定义。
使用 enum 关键字。
例如枚举 DAY { MON, TUE, WED }。

默认值。
第一个是0,后面会自动加1 如果MON=1 TUE 为 2
定义变量。
有三种方法。
例如,枚举 DAY Today;
赋值。
枚举变量。
直接指定枚举的名称。
例如今天 = 周三。

退出。
使用 printf。
%D。
例如, printf("%d", 今天);
crosse.它们只能被连续地枚举。
例如,for 循环。
从周一到周日。

开关。
匹配枚举值。
代码看起来不错。
例如我(今天)改变了。

要枚举的整数。
铸件。
但该值必须是正确的。
例如(枚举DAY) 3 .
优点。
可读性高。
易于维护。
类型安全。

注释。
底层是内部的。
不要使用数字。
小心非连续交叉。

算了。
由你决定。