C/Enumeracións

< C
C
← Volver a Unións Enumeracións Seguir con Punteiros


Unha enumeración ─ou “tipo enumerado”─ é un tipo definido polo programador, e en cuxa definición se indican posibles valores para as variables do tipo enumerado.

A definición dunha enumeración segue a seguinte sintaxe fundamental:

enum identificador {
  valor1,
  valor2,
  // ...
  valorn
};

Onde os valores poden ser calquera combinación de caracteres alfanuméricos. É dicir, os valores son palabras. Unha definición dunha enumeración podería ser a seguinte:

enum tipodecor {
  vermello,
  azul,
  verde,
  amarelo
};

Para declarar unha variable do tipo dunha enumeración previamente definida, procédese seguindo esta sintaxe fundamental:

enum identificador variable;

Seguindo co exemplo anterior:

enum tipodecor cor;

Neste exemplo, cor pasaría a ser unha variable de tipo int que unicamente poderá conter os valores definidos para a enumeración tipodecor: vermello (0), azul (1), verde (2) ou amarelo (3). Así, se lle asignamos á variable cor o valor vermello, será o mesmo que se lle asignamos o valor 0, claro que por suposto máis intuitivo. Deste xeito, as enumeracións permiten mellorar a comprensión do código de maneira notable.

Por defecto, a asignación de valores numéricos aos valores alfanuméricos (palabras) definidos para a enumeración comeza dende o valor 0 para o primeiro valor alfanumérico, e vai incrementándose nunha unidade por cada valor alfanumérico adicional na enumeración. Asignándolle un valor numérico ao primeiro valor alfanumérico cambiamos o número do que se parte á hora de asignarlle valores numéricos aos valores alfanuméricos. É dicir, a conta partirá de 1 en lugar de 0 se facemos:

enum tipodecor {
  vermello=1,
  azul,
  verde,
  amarelo
};

Do mesmo xeito pode facerse para asignarlle calquera valor numérico a calquera dos termos:

enum tipodecor {
  vermello=1,
  verde=66,
  azul,
  amarelo=23
};

Aos termos aos que non lle asignemos un valor numérico asignaráselles un tal e como se especificou previamente.

Cómpre ter en conta que a cada valor alfanumérico (palabra) hai sempre ligado un valor numérico. Tendo en conta o último exemplo, as seguintes dúas expresións terían o mesmo resultado:

cor = 67;
cor = azul;

O uso de enumeracións debería, en principio, evitarse. Á hora de pensar en utilizar unha enumeración cómpre barallar se paga a pena a mellora da comprensión do código fronte á perda de rendemento que causa o seu uso, pois as enumeracións son de tipo int, e non se poden utilizar modificadores para reducir o seu tamaño que, polo xeral, non necesita ser moi grande. Xeralmente os programadores prefiren evitar este elemento. Ademais, dado que as enumeracións non deixan de ser enteiros, pódeselles atribuír un valor enteiro que non estea asociado a ningún valor alfanumérico.


C
← Volver a Unións Enumeracións Seguir con Punteiros