¿Cuál es la diferencia entre la unión de la estructura y la enumeración en C

La estructura es un tipo de datos que almacena diferentes tipos de datos en la misma ubicación de memoria; El tamaño total de memoria de la estructura es la suma de los tamaños de memoria de todos sus miembros. En contraste, Union es un tipo de datos que almacena diferentes tipos de datos en la misma ubicación de memoria; El tamaño total de la memoria depende del tamaño de la memoria de sus elementos más grandes. Mientras tanto, Enum es un tipo de datos que almacena constantes integrales. Esa es la principal diferencia entre la unión de la estructura y la enumeración en C.

En la programación, una variable puede almacenar un valor de un solo tipo de datos. A veces, es necesario almacenar variables de diferentes tipos como una sola unidad. Estructura y unión son dos métodos para almacenar múltiples variables de diferentes tipos como una sola variable. Por otro lado, enum es un tipo de datos para declarar un conjunto de constantes con nombre. Todos estos son tipos de datos definidos por el usuario..

Áreas clave cubiertas

1. Que es la estructura
     - Definición, Funcionalidad
2. Que es union
    - Definición, Funcionalidad
3. Que es enum
    - Definición, Funcionalidad
4. ¿Cuál es la diferencia entre la unión de la estructura y la enumeración en C
    - Comparación de diferencias clave

Términos clave

C, Enum, Estructura, Unión

Que es la estructura

Una estructura es una variable única que puede contener datos de varios tipos. Es un conjunto de variables de tipos de datos diferentes. Un ejemplo de una estructura es el siguiente.

Figura 1: Estructura en C

De acuerdo con el programa anterior, la estructura llamada complejo contiene dos propiedades; real representa la parte real del número complejo, mientras que img representa la parte imaginaria de los números complejos. En el programa principal, la línea 10 declara dos variables de tipo de estructura llamadas c1 y c2. La línea 11 a la línea 14 da valores reales e img de cada c1 y c2. En la línea 15, la variable r almacena la suma de los valores reales de c1 y c2. De manera similar, en la línea 16, la variable i almacena la suma de los valores img de c1 y c2. Finalmente, la suma de números complejos se muestra en la consola..

Que es union

Union permite almacenar varios tipos de datos en la misma ubicación de memoria. Por ejemplo, un empleado puede tener propiedades como nombre, salario y ciudad. En lugar de crear variables para cada uno de ellos, es posible utilizar una unión. Compacta todos los diferentes tipos de datos en una sola unidad.

Figura 2: Unión en C

La distancia entre dos puntos p1 y p2 es la siguiente.  

Distancia = (p2.a - p1.a) 2 + (p2.b - p1.b) 2

Según el programa anterior, Point es un sindicato. Tiene dos propiedades: ay b. En el programa principal, la distancia, t1 y t2 son variables de tipo float; p1 y p2 son de tipo union. La línea 12 a 15, da valores a la a y b de p1 y a y b de p2. t1 y t2 son variables que almacenan los valores de potencia. En la línea 18, la distancia variable almacena la distancia entre el punto p1 y p2. Finalmente, la respuesta se muestra en la consola..

La unión y la estructura son muy similares, pero tienen una diferencia. En las uniones, la memoria total requerida para almacenar la unión es la memoria del elemento más grande en esa unión. Por ejemplo, supongamos que una unión tiene tres propiedades: nombre, salario e identificación. El nombre toma 32 bytes, y el salario y la identificación toman 4 bytes cada uno. La mayor es de 32 bytes, y la asignación de memoria para la unión es de 32 bytes.

Que es enum

Enum significa enumeración. Es un tipo de datos definido por el usuario que consiste en constantes integrales. Un ejemplo es el siguiente.

Figura 3: Enum en C

La semana es una enumeración. Por defecto, Sunday tiene el valor 0, Monday tiene el valor 1, Tuesday tiene el valor 2, etc. En el programa principal, hoy es una enumeración de tipo semana. Se asigna con el viernes. El día siguiente es sábado y tiene una constante 6. Por lo tanto, la salida "Día 6" se mostrará en la consola.

Por ejemplo, suponga que el programador declaró la enumeración de la siguiente manera.

enum semana domingo = 1, lunes, martes, miércoles, jueves, viernes, sábado;

Luego, el programa principal dará la salida como "Día 7"..

Diferencia entre la unión de la estructura y Enum en C

Definición

Estructura es un tipo de datos que almacena diferentes tipos de datos en la misma ubicación de memoria y cuyo tamaño de memoria total de la estructura es la suma de los tamaños de memoria de todos sus miembros. En contraste, Union es un tipo de datos que almacena diferentes tipos de datos en la misma ubicación de memoria y cuyo tamaño de memoria total depende del tamaño de memoria de sus elementos más grandes. Enum es un tipo de datos en lenguaje C que representa un tipo de valor para declarar un conjunto de constantes con nombre. Estas definiciones describen la diferencia fundamental entre la unión de la estructura y la enumeración en C.

Palabra clave

La palabra clave para declarar una estructura es 'struct', mientras que la palabra clave para declarar una unión es 'union', y la palabra clave para declarar un Enum es 'enum'.

Uso

Hay una diferencia entre la unión de la estructura y la enumeración en C en función de su uso también. Tanto la estructura como la unión ayudan a almacenar datos de diferentes tipos como una sola unidad, mientras que la enumeración ayuda a asignar constantes a un conjunto de nombres para facilitar la lectura, el mantenimiento y la comprensión del programa.. 

Conclusión

La estructura es un tipo de datos que almacena diferentes tipos de datos en la misma ubicación de memoria; El tamaño total de memoria de la estructura es la suma de los tamaños de memoria de todos sus miembros. En contraste, Union es un tipo de datos que almacena diferentes tipos de datos en la misma ubicación de memoria; El tamaño total de la memoria depende del tamaño de la memoria de sus elementos más grandes. Mientras tanto, Enum es un tipo de datos que almacena constantes integrales. Por lo tanto, esta es la principal diferencia entre la unión de la estructura y la enumeración en C.

Referencia:

1. “Estructura de programación en C”. Cadenas de Python (con ejemplos), disponibles aquí.
2. “Uniones de programación en C”. Cadenas de Python (con ejemplos), disponibles aquí.
3. “Enumeración de programación en C”. Cadenas de Python (con ejemplos), disponibles aquí.