Diferencia entre estructura y unión

, , Comments Off on Diferencia entre estructura y unión

Tanto la estructura como la unión son tipos de datos definidos por el usuario en C Language y son conceptualmente iguales, sin embargo, aún así son diferentes en cierto modo, como la manera en que se asigna la memoria 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. Si bien 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 Estructura?

Una estructura es simplemente otro tipo de datos definido 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í, que de otro modo, no tendrían 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 muchos datos necesitan agruparse como un directorio que almacena información sobre muchos miembros de un libro o una libreta de direcciones que almacena toda la información sobre un único 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 en otros miembros.

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

struct empleado {

nombre de cadena;

edad de cuerda;

teléfono de cuerda;

salario de cadena;

} emp1, emp2;

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

A los miembros de una estructura se puede acceder mediante dos tipos de operadores:

  1. Operador miembro
  2. Estructura del operador de puntero

¿Qué es Unión?

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 se puede definir reemplazando la palabra clave ‘struct’ por la palabra clave ‘union’. Los miembros se superponen a la memoria de los demás en una unión y es lo suficientemente grande para todos sus miembros.

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

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 usar una unión cuando desee almacenar algo que sea uno de varios tipos de datos.

empleado sindical {

nombre del char [32];

int edad;

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 valor flotante 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 usa para definir una unión.

  1. 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.

  1. Acceso de miembros

Una unión almacena un único valor a la vez para todos sus miembros, lo que hace que sea accesible solo a un miembro a la vez. Si bien se pueden almacenar múltiples valores en una estructura, se puede acceder y recuperar cualquier valor miembro en cualquier momento.

  1. 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.

  1. Inicialización

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

  1. 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 sobre los valores de otros miembros. Mientras que una unión 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 usa para definir una estructura. La palabra clave Union se usa para definir una unión.
Los miembros no comparten memoria en una estructura. Los miembros comparten el espacio de la 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 se pueden inicializar a la vez. Solo el primer miembro se puede inicializar.
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.
Alterar el valor de un miembro no afectará el valor de otro. El cambio en el valor de un miembro afectará otros valores de miembro.
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 usan la misma sintaxis para la declaración de variables y para acceder a los miembros. Mientras que una estructura está definida por la palabra clave ‘struct’, 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 en cualquier secuencia en una estructura, mientras que en una unión, solo se puede acceder a esa variable cuyo valor se ha almacenado recientemente.

Referencias:

0] Kanetkar, Yashavant. Let Us C. New Delhi: BPB Publications, 2002. Imprimir

[1] Kanetkar, Yashavant. Let Us C. New Delhi: BPB Publications, 2002. Imprimir

[2] King, K.N. C Programación: un enfoque moderno. Nueva York: W.W. Norton & Company, 1996. Imprimir

[3] Griffiths, David y Dawn Griffiths. Head First C. Sebastopol: O’Reilly Media, 2011. Imprimir

[4] Crédito de imagen: https://stackoverflow.com/questions/3921931/how-to-visualise-a-graph-of-c-structs-that-contain-point-to-one-another

Pomagajte nam izboljšati. Ocenite ta članek: