Sintaxis:
enum nombre {lista-de-nombres} variable-lista;
La palabra clave enum es usada para crear un tipo enumerador llamado nombre que consiste de los elementos en lista-de-nombre. La variable-lista es opcional, y puede ser usada para crear instancias de tipo nombre junto con la declaracion. Por ejemplo, el siguiente código crea un tipo enumerador para colores:
enum ColorT {rojo, naranja, amarillo, verde, azul, indigo, violeta}; ... ColotT c1 = indigo; if( c1 == indigo ) { cout << "c1 es índigo" << endl; }
En el ejemplo anterior, el efecto de enumeración es introducir nuevas constantes llamadas rojo, naranja, amarillo, etc. Por defecto, estas constantes son asignadas consecutivamente como enteros empezando en cero. Puedes cambiar los valores de estas constantes, como es mostrado en el siguiente ejemplo:
enum ColorT { rojo = 10, azul = 15, verde }; ... ColorT c = verde; cout << "c es " << c << endl;
Al ejecutarlo, el anterior código despliega lo siguiente:
c es 16
Note que en el ejemplo anterior solo trabajara con compiladores C++. Si estas trabajando con C, vas a necesitar especificar la palabra clave enum cuando quieras crear una instancia de tipo enumerador:
enum ColorT { rojo = 10, azul = 15, verde }; ... enum ColorT c = verde; /* Nota la adicional palabra clave enum */ printf( "c es %d\n", c );
Alternativamente, añade typedef para poner C y C++ a la par:
typedef enum ColorT { rojo = 10, azul = 15, verde } ColorT; ... ColorT c = verde; /* No mas palabras clave enum */ printf( "c es %d\n", c );