我试图找到如果我在枚举中有2个变量会发生什么 我给它分配了一个值。 我想了解何时为c_type赋值,哪一个使用C1或C2?
我有以下代码:
typedef enum {
C1 = 0,
C2,
} c_type;
typedef struct A_a {
c_type store;
} A;
FuncABC(int val)
{
A a1;
a1.store = val; /here store has C1 and C2, which one gets used here?
}
请让我知道。我知道上面的代码在逻辑上用C语言。 但是,需要澄清作业。
答案 0 :(得分:3)
您感到困惑的是a1.store
会存储C1
或C2
。
实际,a1.store
可以是C1
或C2
或2
或3
或255
或其他是val
的值。
回到C标准,enum
变量可以存储超出enum
类型值范围的值。
您也可以参考此Enumeration object set to a value not equal to any of its respective enumeration constants
答案 1 :(得分:0)
这是未定义的行为。您的代码最可能的结果是崩溃,因为您正在取消引用未初始化的指针。