我有一个枚举:如何检查一个枚举变量是否有效?
enum myenum{
typeA,
typeB,
typeC
} myenum_t;
然后,功能是用一个枚举参数来调用:
int myfunction(myenum_t param1)
{
switch(param1)
{
case typeA:
case typeB:
case typeC:
//do the work
break;
default:
printf("Invalid parameter");
}
return 0;
}
但是,正如myenum_t
增长随着越来越多的价值,myfunction
似乎并不如此优雅。
有没有更好的方法来检查一个枚举是否有效?
不具有标准的副本,我就会撕开这么说,没有引用它,所以我会让它评论:在我看到每个C或C++实现,'enum'值都是按递增的数字顺序分配的。所以你所要做的就是在'enum'中加入'firstEnum = typeA,lastEnum = typeC',然后用'if(int(inputEnum) int(lastEnum) ){/ *处理错误* /}'。 –
2012-02-06 14:49:51