Comment vérifier si une variable enum est valide?

J'ai un enum:

enum myenum{
  typeA,
  typeB,
  typeC
} myenum_t;

Ensuite, une des fonctions est d'être appelée avec un enum paramètre:

int myfunction(myenum_t param1)
{
  switch(param1)
  {
    case typeA:
    case typeB:
    case typeC:
      //do the work
      break;

    default:
      printf("Invalid parameter");
  }
  return 0;
}

Mais, comme myenum_t grandit avec de plus en plus de valeurs, myfunction n'a pas l'air si élégant.

Est-il une meilleure façon de vérifier si un enum est valide ou pas?

source d'informationauteur mustafa