我有一個枚舉:如何檢查一個枚舉變量是否有效?
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