Un enumerazione é un tipo di dato intero che può contenere un tipo di dato.
Il loro utilizzo é molto simile a quello già visto per le strutture e per le unioni con la differenza che un enumerazione può contenere solo costanti intere (int o char), che i suoi membri non vengono allocati sequenzialmente in memoria e condividono lo stesso spazio dei nomi delle altre variabili (e non anche delle strutture e delle unioni, per cui si possono generare conflitti). Vengono utilizzate laddove ci sia la necessità di organizzare i nomi delle variabili per insiemi o valori significativi. Ad esempio:
enum tag_enum {
NORD = 0;
EST = 90;
SUD = 180,
OVEST = 270
};
Qualora un enumerazione non venga inizializzata essa assume il valore 0 per il primo membro, 1 per il secondo, 2 per il terzo. In caso di inizializzazione mista si osserva lo stesso principio, incrementando di 1 il valore precedentemente dichiarato.