我记得在某处读到如果说:
typedef enum TEST {
zero,
one,
two,
unknown
};
然后,执行TEST test1 = 5
实际上会将其分配给unknown
值,在这种情况下将是3.我已经编写并测试但它没有分配给该值,那么什么是在枚举结尾处使用了未知值?
答案 0 :(得分:1)
TEST test1 = 5 would actually make it assign to unknown
不正确(正如'Oli'已经指出的那样)。
枚举由一组命名的整数常量组成。具有枚举类型的变量存储由该类型定义的枚举集的值之一。虽然希望有一个预定义的值,但是指定一些其他随机值isn't illegal
。
大多数(不是全部)时间,枚举常量用于检查一些预期具有一些预定义值范围的参数。例如:在网络应用程序中,您可能必须使用来自一端的每条消息发送一些msg_id(这是枚举常量),并根据另一端的此msg_id采取一些操作。但是,如果收到的msg_id不是枚举的预定义值之一,则可以设置msg_id = Unknown
并返回错误。