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

2026年09月22日 04:14
有5个网友回答
网友(1):

1、不能赋值为负值。在32位机器中,枚举类型默认为4个字节的无符号类型,所以-1会变为2^32-1。
2、根据C标准的规定,枚举常量的类型为 int,枚举变量的类型应该与 char、有符号或无符号整型兼容。因此,枚举变量可以接受 char、有符号或无符号整型数,而不限于仅从此枚举类型所定义的枚举常量中取值。由于上述原因,在C语言中无法从语法上保证枚举变量只能在定义的枚举成员中取值,只能由程序员自身保证不使用除枚举成员之外的值。

网友(2):

可以,不超过int值域

网友(3):

可以赋负值。

网友(4):

不可以

网友(5):

可以的