La définition suivante introduit un nom de type et un ensemble de noms de constantes, lesquelles constituent les valeurs de ce type :
typedef enum {Est, Nord, Ouest, Sud} direction;
Ces constantes d'énumération sont particulièrement utiles dans une instruction d'aiguillage. La fonction suivante permet de modifier la valeur des arguments x et y, passés par référence (représentant la position d'un point dans le plan) selon la valeur du premier argument, de type direction :
void deplacement(direction d, int *x, int *y) {
switch(d) {
case Est:
*x = *x+1;
break;
case Nord:
*y = *y+1;
break;
case Ouest:
*x = *x-1;
break;
case Sud:
*y = *y-1;
break;
}
}
Il est obligatoire que chaque valeur du type d'énumération soit traitée (au moins par un default).