![](/img/trans.png)
[英]Is there a warning for assigning an enum variable with a value out of the range of the enum?
[英]Assigning invalid value for a typedef enum variable
我记得在 SO 的某处读到,如果:
typedef enum TEST {
zero,
one,
two,
unknown
};
然后,执行TEST test1 = 5
实际上会将其分配给unknown
值,在本例中为 3。我已经编写并测试过但它没有分配给该值,那么在枚举的结尾?
TEST test1 = 5 would actually make it assign to unknown
不正确(正如'Oli'已经指出的那样)。
枚举由一组命名的 integer 常量组成。 具有枚举类型的变量存储由该类型定义的枚举集的值之一。 虽然希望有一个预定义的值,但分配一些其他随机值isn't illegal
的。
大多数(不是全部)时间,枚举常量用于检查一些参数,这些参数预期具有一些预定义的值范围。 例如:在网络应用程序中,您可能必须在一端的每条消息中发送一些 msg_id(它是枚举常量),并在另一端基于此 msg_id 采取一些行动。 但是,如果接收到的 msg_id 不是 enum 的预定义值之一,您可以设置msg_id = Unknown
并返回错误。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.