如何在C中安全地使用枚举?

Mic*_*ael 3 c enums

考虑以下示例:

typedef enum {Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday} Day;
void DoSomething(Day day){
//some code
}
Run Code Online (Sandbox Code Playgroud)

问题是以下代码符合:DoSomething(74).那么如何在DoSomething中查看我的参数真的是一天?(依赖于数字将无法工作,因为如果我改变我的枚举Sunday=7....我希望它也能工作,并且检查if(day==Sunday || day ==...)看起来效率低下).

Meh*_*dad 5

简短的回答是你不能.

答案很长,你可以尝试设置一个"最小"和"最大"成员,并检查该值是否介于两者之间...或其他类似的技巧.