Как проверить, действительна ли переменная перечисления?

У меня есть перечисление:

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 не кажется таким элегантным.

Есть ли лучший способ проверить, допустимо ли перечисление?

12
задан hmjd 6 February 2012 в 14:47
поделиться