Estructura y union

Anonim

Tanto la estructura como la unión son tipos de datos definidos por el usuario en lenguaje C y conceptualmente son iguales, sin embargo, aún son diferentes en algunos aspectos, como la forma en que la memoria se asigna a sus miembros. Se declaran de manera similar pero funcionan de manera diferente. Permiten al usuario combinar diferentes tipos de datos bajo un solo nombre. Mientras que la ubicación de memoria separada se usa para cada miembro al declarar variables de estructura, los diferentes miembros de una variable de unión comparten la misma ubicación de memoria. Estudiemos la diferencia entre estructura y unión es detalle.

¿Qué es la estructura?

Una estructura es solo otro tipo de datos definidos por el usuario en C que permite al usuario combinar tipos de datos de diferentes tipos en un solo tipo en un bloque de memoria. Una estructura puede contener tipos de datos simples y complejos relacionados entre sí, lo que de lo contrario no tendrá sentido. Cada miembro dentro de una estructura obtiene su propia ubicación de memoria para que se pueda acceder y recuperar en cualquier momento.

Una estructura se usa cuando una gran cantidad de datos necesita agruparse como un directorio que almacena información sobre muchos miembros en un libro o en una libreta de direcciones que almacena toda la información sobre un solo contacto: nombre, dirección, número de contacto, etc. La dirección de cada miembro estará en orden ascendente, lo que significa que la memoria de cada miembro comenzará con diferentes valores de compensación. Alterar el valor de un miembro no tendrá ningún efecto sobre otros miembros.

Se utiliza una palabra clave ‘struct’ para definir una estructura de diferentes tipos de datos con un solo nombre. Por ejemplo, si desea crear una base de datos de empleados, deberá almacenar el nombre, la edad, el teléfono y los detalles salariales de los empleados en una sola entidad. Esto se hace con la palabra clave ‘struct’, que luego le dice al compilador que se ha declarado una estructura.

empleado de la estructura

nombre de la cadena;

edad de la cuerda;

cadena de teléfono

salario de cadena

} emp1, emp2;

Aquí, "empleado" es el nombre de la estructura y dos variables "emp1" y "emp2" se crean del tipo "empleado". Las llaves de cierre deben ir seguidas de un punto y coma (;).

Los miembros de una estructura pueden ser accedidos por dos tipos de operadores:

  1. Operador miembro
  2. Operador puntero estructura

Que es la union

Es un tipo de datos especial utilizado en C que permite al usuario almacenar tipos de datos de diferentes tipos en la misma ubicación de memoria. Una unión es bastante similar a una estructura y puede definirse reemplazando la palabra clave ‘struct’ con la palabra clave ‘union’. Los miembros superponen la memoria de los demás en una unión y es lo suficientemente grande como para adaptarse a todos sus miembros.

Cuando una variable está asociada con la unión, el compilador asigna la memoria considerando el tamaño de la memoria más grande, por lo que el tamaño de una unión es igual al tamaño del miembro de datos más grande. Una unión puede definirse con muchos miembros, pero solo un miembro contiene el valor en cualquier instancia de tiempo.

La dirección es la misma para todos los miembros de una unión, lo que significa que cada miembro comienza con el mismo valor de compensación. Y alterar el valor de un miembro afectará los valores de otros miembros. Se puede utilizar una unión cuando desee almacenar algo que sea uno de varios tipos de datos.

empleado sindical {

nombre de personaje [32];

edad int

sueldo flotante

};

Aquí la palabra clave "unión" define la unión que es bastante similar a la declaración de la estructura. La variable puede almacenar un valor de cadena que es "nombre del empleado", un valor entero que es la "edad del empleado" o un flotador que representa el "salario del empleado".

Diferencia entre estructura y unión

1. Palabra clave

La palabra clave ‘struct’ se utiliza para definir una estructura, mientras que la palabra clave ‘union’ se utiliza para definir una unión.

2. Asignación de memoria

Se asigna espacio de memoria separado para los miembros dentro de una estructura y los miembros tienen direcciones diferentes que no comparten memoria. Una unión, por otro lado, comparte el mismo espacio de memoria para todos sus miembros, por lo que se asigna la ubicación de la memoria compartida.

3. Acceso de miembros

Un sindicato almacena un valor único a la vez para todos sus miembros, lo que permite el acceso a un solo miembro a la vez. Si bien se pueden almacenar múltiples valores en una estructura, se puede acceder y recuperar cualquier valor de miembro en cualquier momento.

4. Tamaño

El tamaño de una estructura es igual a la suma del tamaño de todos los miembros o más, mientras que el tamaño de una unión es igual al tamaño del miembro de mayor tamaño.

5. Inicialización

En una estructura, varios miembros pueden inicializarse a la vez, mientras que en una unión, solo el primer miembro puede inicializarse con el valor de su tipo.

5. Valor

Una estructura puede almacenar diferentes valores de todos los miembros y el cambio en el valor de un miembro no tendrá ningún efecto en los valores de otros miembros. Mientras que un sindicato almacena el mismo valor para todos sus miembros y el cambio de valor de un miembro afectará el valor de otro.

Estructura vs. Unión

Estructura Unión
La palabra clave Struct se utiliza para definir una estructura. La palabra clave de unión se utiliza para definir una unión.
Los miembros no comparten memoria en una estructura. Los miembros comparten el espacio de memoria en una unión.
Cualquier miembro puede ser recuperado en cualquier momento en una estructura. Solo se puede acceder a un miembro a la vez en una unión.
Varios miembros de una estructura pueden inicializarse a la vez. Solo el primer miembro puede ser inicializado.
El tamaño de la estructura es igual a la suma del tamaño de cada miembro. El tamaño de la unión es igual al tamaño del miembro más grande.
La alteración del valor de un miembro no afectará el valor de otro. El cambio en el valor de un miembro afectará a los valores de otros miembros.
Almacena diferentes valores para todos los miembros. Almacena el mismo valor para todos los miembros.

Resumen

  • Tanto la estructura como la unión son tipos de datos definidos por el usuario en C que son funcional y conceptualmente iguales pero que son bastante diferentes en algunos aspectos.
  • Ambos contienen variables de diferentes tipos de datos pero utilizan la misma sintaxis para la declaración de variables y para acceder a los miembros. Mientras que una estructura se define por la palabra clave "estructura", una unión se define por la palabra clave "unión".
  • Cada miembro obtiene una ubicación de memoria separada en una estructura, mientras que en una unión, el espacio de memoria total es equivalente al miembro de mayor tamaño. Todos los miembros comparten el mismo espacio de memoria en una unión.
  • Se puede acceder a cualquier miembro de cualquier secuencia en una estructura, mientras que en una unión, solo se puede acceder a esa variable cuyo valor se almacena recientemente.