c - c 中的枚举?它们可以用于存储吗

标签 c enums enumeration

我试图找出如果我在枚举中有 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 中逻辑上有效。 但是,想要澄清作业。

最佳答案

您混淆的是 a1.store 将存储 C1C2

实际上a1.store可以是C1C223255val 的任何值。

回到 C 标准,enum 变量可以存储超出 enum 类型值范围的值。

你也可以引用这个 Enumeration object set to a value not equal to any of its respective enumeration constants

关于c - c 中的枚举?它们可以用于存储吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35471855/

相关文章:

c++ - 远程线程调用 LoadLibrary 失败,错误 87

c# - .NET Core - 有没有办法在使用 Select Tag Heller 时将枚举设置为具有默认值?

c# - 值得将枚举转换为它的值的场景

java - 枚举和最终变量有什么区别?

用于枚举的 Delphi RTTI SetValue

swift - Swift 中导入 NS_OPTIONS (RawOptionSetType) 的 Switch 语句?

arrays - 计算数组中不同的元素

c - 数组输出指针

c - 如何让父进程等待所有子进程完成?

c - Malloc 未定义行为 - 丢失数据