请考虑以下示例:

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

问题是以下代码符合:DoSomething(74)。所以我怎样才能确认我的参数真的是一天?
(依赖数字是行不通的,因为如果我像那样更改枚举值,Sunday=7……,我希望它也能工作,并且检查if(day==Sunday || day ==...)看起来效率很低)。

最佳答案

简而言之,你不能。
长期的答案是,你可以尝试设置一个“最小”和“最大”的成员,并检查这个值落在两个之间的范围内。或者其他类似的把戏。

10-04 16:38