c - 如何在 C 中为枚举赋值?

标签 c struct enums lint

我有一个 enum 和一个 struct 定义如下:

typedef enum
{
   MONDAY = 1,
   TUESDAY,
   WEDNESDAY
} ThreeDays;

typedef struct
{
   int hello;
   ThreeDays day;
} Weekday;

static Weekday weekday = { 1, 2};

然后我在 lint 中得到以下错误:

Error 64: Type mismatch (initialization) (int/enum)

这个错误的原因是什么?我该如何纠正它?

最佳答案

将您的枚举用于其构建目的:

static Weekday weekday = {1,TUESDAY};

Lint 提示是因为您有一个枚举,但既没有传递枚举中的符号,也没有传递兼容类型的转换(例如 (ThreeDays)2)。

逐字使用枚举符号以避免来自 Lint 的警告。

关于c - 如何在 C 中为枚举赋值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13510000/

相关文章:

c++ - 测试字符串以查看是否存在数字并将值分配给变量同时跳过所有非数字值?

c++ - 使用 printf() 改变多线程结果?

c - 将 int 放入 int 指针中会在 C 中产生运行时错误。

c++ - 清除类型为 'struct ' 的对象,没有简单的复制分配;改用赋值或值初始化

Racket FFI 中结构体的折叠偏移

c++ - C++ 中的默认枚举可见性

java - 是否可以检查 proto 文件中的枚举值?

c++ - gtk 最小尺寸

java - 处理更改的 ENUM 定义 - 数据库

c - 将文件中的单词加载到 C 中的数组中