如何为C中的枚举赋值?

4 c enums struct lint

我有一个enum和这样的struct定义:

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

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

static Weekday weekday = { 1, 2};
Run Code Online (Sandbox Code Playgroud)

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

Error 64: Type mismatch (initialization) (int/enum)
Run Code Online (Sandbox Code Playgroud)

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

Who*_*aig 7

使用你的枚举为它构建的内容:

static Weekday weekday = {1,TUESDAY};
Run Code Online (Sandbox Code Playgroud)

Lint抱怨是因为你有一个枚举,但既没有传递枚举中的符号,也没有兼容类型的强制转换(例如(ThreeDays)2).

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