C enum (enumeración)

En este tutorial, aprenderá sobre enum (enumeración) en la programación en C con la ayuda de ejemplos.

En la programación C, un tipo de enumeración (también llamado enum) es un tipo de datos que consta de constantes integrales. Para definir enumeraciones, enumse utiliza la palabra clave.

 indicador de enumeración (const1, const2,…, constN); 

Por defecto, const1 es 0, const2 es 1 y así sucesivamente. Puede cambiar los valores predeterminados de los elementos de enumeración durante la declaración (si es necesario).

 // Cambiar los valores predeterminados de las constantes enum enum suit (club = 0, diamantes = 10, corazones = 20, espadas = 3,);

Declaración de tipo enumerada

Cuando define un tipo de enumeración, se crea el modelo para la variable. Así es como puede crear variables de tipos de enumeración.

enum boolean (falso, verdadero); verificación booleana enum; // declarando una variable de enumeración

Aquí, enum booleanse crea una verificación de variable del tipo .

También puede declarar variables de enumeración como esta.

 enum verificación booleana (falsa, verdadera); 

Aquí, el valor de falsees igual a 0 y el valor de truees igual a 1.

Ejemplo: tipo de enumeración

 #include enum week (Sunday, Monday, Tuesday, Wednesday, Thursday, Friday, Saturday); int main() ( // creating today variable of enum week type enum week today; today = Wednesday; printf("Day %d",today+1); return 0; ) 

Salida

 Día 4

¿Por qué se utilizan las enumeraciones?

Una variable de enumeración puede tomar solo un valor. Aquí hay un ejemplo para demostrarlo,

 #include enum suit ( club = 0, diamonds = 10, hearts = 20, spades = 3 ) card; int main() ( card = club; printf("Size of enum variable = %d bytes", sizeof(card)); return 0; ) 

Salida

 Tamaño de la variable de enumeración = 4 bytes

Aquí, obtenemos 4 porque el tamaño de intes 4 bytes.

Esto hace que enum sea una buena opción para trabajar con banderas.

¿Cómo usar enumeraciones para banderas?

Tomemos un ejemplo,

 enum designFlags ( ITALICS = 1, BOLD = 2, UNDERLINE = 4 ) button; 

Suponga que está diseñando un botón para una aplicación de Windows. Puede configurar las banderas ITALICS, BOLD y UNDERLINE para trabajar con texto.

Hay una razón por la cual todas las constantes integrales son una potencia de 2 en el pseudocódigo anterior.

 // En binario ITALICS = 00000001 BOLD = 00000010 UNDERLINE = 00000100 

Dado que las constantes integrales son una potencia de 2, puede combinar dos o más indicadores a la vez sin superponerlos usando OR | operador. Esto le permite elegir dos o más banderas a la vez. Por ejemplo,

 #include enum designFlags ( BOLD = 1, ITALICS = 2, UNDERLINE = 4 ); int main() ( int myDesign = BOLD | UNDERLINE; // 00000001 // | 00000100 // ___________ // 00000101 printf("%d", myDesign); return 0; ) 

Salida

 5

Cuando la salida es 5, siempre sabrá que se usa negrita y subrayado.

Además, puede agregar banderas según sus requisitos.

 if (myDesign & ITALICS) (// código para cursiva)

Aquí, hemos agregado cursiva a nuestro diseño. Tenga en cuenta que solo el código para cursiva se escribe dentro de la ifdeclaración.

Puede lograr casi cualquier cosa en la programación en C sin usar enumeraciones. Sin embargo, pueden resultar muy útiles en determinadas situaciones.

Articulos interesantes...