Dados do tipo enum pertencem a um determinado conjunto limitado de dados. Definindo o tipo enumerador:

enum nome do tipo enumerável
{
lista de valores
};

A lista de valores é uma lista de identificadores de constantes nomeados separados por vírgulas.

Exemplo:

enum months // enumeração de constantes nomeados
{
January,
February,
March,
April,
May,
June,
July,
August,
September,
October,
November,
December
};

Após a enumeração ser declarada, um novo tipo de dados de inteiro de 4 bytes aparece. A declaração do novo tipo de dados permite ao compilador controlar rigidamente os tipos de parâmetros passados, porque a enumeração introduz novas constantes nomeadas. No exemplo acima, a constante nomeada January tem valor igual a 0, February - 1, December - 11.

Rule: Se um certo valor não estiver atribuído a uma constante nomeada que é membro da enumeração, seu novo valor será formado automaticamente. Se ele é o primeiro membro da enumeração, o valor 0 será atribuído a ele. Para todos os subseqüentes membros, os valores serão calculados baseados no valor dos membros anteriores adicionando um.