tengo una enumeración:¿Cómo verificar si una variable enum es válida?
enum myenum{
typeA,
typeB,
typeC
} myenum_t;
Entonces, funciona una es para ser llamado con un parámetro de enumeración:
int myfunction(myenum_t param1)
{
switch(param1)
{
case typeA:
case typeB:
case typeC:
//do the work
break;
default:
printf("Invalid parameter");
}
return 0;
}
Pero, como myenum_t
crece con más y más valores, myfunction
no parece muy elegante.
¿Existe alguna forma mejor de verificar si una enumeración es válida o no?
No tener una copia de la norma, me gustaría tener arrancado por decir esto sin citarlo, por lo que voy a hacer un comentario: cada implementación C o C++ que he visto, los valores 'enum' se asignan en orden numérico creciente. Entonces todo lo que necesita hacer es agregar 'firstEnum = typeA, lastEnum = typeC' a su' enum' y luego comprobar el rango con 'if (int (inputEnum) int (lastEnum)) {/ * manejar error * /} '. –