为typedef枚举变量分配无效值

时间:2011-06-29 09:48:57

标签: c

我记得在某处读到如果说:

typedef enum TEST {
   zero,
   one,
   two,
   unknown
};

然后,执行TEST test1 = 5实际上会将其分配给unknown值,在这种情况下将是3.我已经编写并测试但它没有分配给该值,那么什么是在枚举结尾处使用了未知值?

1 个答案:

答案 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并返回错误。