分配给枚举的无效值是否会导致内存损坏?

时间:2015-09-19 14:43:30

标签: c

我有一个枚举

typedef enum State_t {
    NOT_READY = 0,
    NULL = 1,
    READY = 2,
    NOT_READY = 3,
    WORK_READY = 4
} State_t;

如果我们分配

State_t state_t = -1; 

会引起任何问题吗?

2 个答案:

答案 0 :(得分:3)

它不会导致内存损坏。"然而,它可能会在变量中产生令人惊讶的值,如果枚举类型是有符号的,则为-1;如果是无符号的,则为某个巨大的值。枚举通常默认签名,但语言标准不保证这一点。

答案 1 :(得分:0)

没有内存损坏。如果它是无符号的,你可能会看到一个非常大的值存储在变量中。