请考虑以下示例:
typedef enum {Sunday,Monday,Tuesday,Wednesday,Thursday,Friday,Saturday} Day;
void DoSomething(Day day){
//some code
}
问题是以下代码符合:
DoSomething(74)
。所以我怎样才能确认我的参数真的是一天?(依赖数字是行不通的,因为如果我像那样更改枚举值,
Sunday=7
……,我希望它也能工作,并且检查if(day==Sunday || day ==...)
看起来效率很低)。 最佳答案
简而言之,你不能。
长期的答案是,你可以尝试设置一个“最小”和“最大”的成员,并检查这个值落在两个之间的范围内。或者其他类似的把戏。