Diferencia entre la Estructura y la Unión

¿Qué es una estructura?

La estructura es un tipo de datos definido por el usuario en un lenguaje de programación C que combina elementos de datos relacionados lógicamente de diferentes tipos de datos.

Todos los elementos estructurales se almacenan en ubicaciones de memoria contiguas. Una variable de tipo de estructura puede almacenar más de un elemento de datos de diferentes tipos de datos bajo un nombre.

En este tutorial, aprenderá:

Que es una Union

Union es un tipo de datos definidos por el usuario, como una estructura. Una Unión combina objetos de diferentes tipos y tamaños. La variable de unión asigna el espacio de memoria igual al espacio para contener la variable de unión más grande. Permite que diferentes tipos de objetos compartan la misma ubicación.

Proporción de la estructura de aseguramiento

struct [name of the structure]
   {
       type member1;
       type member2;
       type member3;
   };

Una estructura se anuncia utilizando la palabra clave «estructura» y el nombre de la estructura. El número 1, el número 2 y el número 3 son miembros individuales de la estructura. La parte del cuerpo se termina con un punto y coma (;).

Ejemplo de estructura en registro C.

#include <stdio.h>
struct student {
    char name[60];
    int roll_no;
    float marks;
} sdt;
int main() {
    printf("Enter the following information:n");
    printf("Enter student name: ");
    fgets(sdt.name, sizeof(sdt.name), stdin);
    printf("Enter student roll number: ");
    scanf("%d", & sdt. roll_no);
    printf("Enter students marks: ");
    scanf("%f", & sdt.marks);
    printf("The information you have entered is: n");
    printf("Student name: ");
    printf("%s", sdt.name);
    printf("Student roll number: %dn", sdt. roll_no);
    printf("Student marks: %.1fn", sdt.marks);
    return 0;
}

En el programa anterior, se crea una estructura llamada estudiante. Esta estructura consta de tres miembros de datos: 1) nombre (cadena), 2) roll_no (entero) y 3) marca (flotante).

Después de esto, sdt crea una estructura variable para almacenar y mostrar la información del estudiante en la pantalla de la computadora.

Producción:

Ingrese la siguiente informacion:

Ingrese el nombre del estudiante: James

Ingrese el número de registro del estudiante: 21

Entrada de notas de alumnos: 67

La información que ha enviado es:

Nombre del estudiante: John

Número de registro de estudiantes: 21

Calificaciones de los estudiantes: 67.0

Unión proporcional declarada

union [name of union]
    {
       type member1;
       type member2;
       type member3;
    };

El sindicato se proclama utilizando la palabra clave «sindicato» y el nombre del sindicato. El número 1, el número 2 y el número 3 son miembros individuales de la unión. La parte del cuerpo es eliminada por un medio clon (;).

Ejemplo del Programa Sindical en C.

#include <stdio.h>

union item
{
    int x;
    float y;
    char ch;
};

int main( )
{
    union item it;
    it.x = 12;
    it.y = 20.2;
    it.ch="a";
    
    printf("%dn", it.x);
    printf("%fn", it.y);
    printf("%cn", it.ch);
    
    return 0;
}

Producción:

1101109601

20.199892

a

En la tabla anterior, verá que los valores de x y ya están dañados. Solo una variable ch imprime el resultado esperado. Es porque, en unión, la ubicación de la memoria se comparte entre todos los tipos de datos de miembros.

Por lo tanto, el único miembro de los datos cuyo valor está almacenado actualmente, estará en el espacio de la memoria. El valor de la variable ch finalmente se almacenó, por lo que el valor del resto de las variables se pierde.

Estructura vs. Unión

Aquí está la importante diferencia entre estructura y unión:

Estructura Unión
Puede utilizar una palabra clave struct para definir una estructura. Puede utilizar una palabra clave de unión para definir una unión.
A cada miembro de la estructura se le asigna una ubicación de memoria única. En unión, todos los miembros comparten datos de ubicación de memoria.
Cambiar el valor de un elemento de datos no afectará a otros miembros de datos en la estructura. El valor de un miembro de datos cambiará el valor de otro miembro de datos en la unión.
Le permite iniciar varios miembros a la vez. Le permite iniciar al primer miembro del sindicato.
El tamaño total de la estructura es la suma del tamaño de cada miembro de datos. El tamaño total de la unión es el tamaño del miembro de datos más grande.
Se utiliza principalmente para almacenar varios tipos de datos. Se utiliza principalmente para almacenar uno de los muchos tipos de datos disponibles.
Hay espacio para cada miembro escrito en un parámetro interno. Ocupa espacio para un miembro con la mayor cantidad escrita en un parámetro interno.
Puede recuperar cualquier miembro a la vez. Puede acceder a un miembro a la vez en el sindicato.
Es compatible con un conjunto flexible. No es compatible con un conjunto flexible.

Ventajas de la estructura

Aquí están las ventajas / beneficios de usar la estructura:

  • Las estructuras recopilan más de un dato sobre el mismo tema en el mismo lugar.
  • Es útil cuando desea recopilar datos de tipos de datos y parámetros similares, como nombre, apellido, etc.
  • Es muy fácil de mantener ya que podemos mostrar el registro completo usando un nombre.
  • Estructuralmente, podemos reenviar un conjunto completo de registros a cualquier función usando un solo parámetro.
  • Puede utilizar un conjunto de estructuras para almacenar más registros con tipos similares.

Los beneficios de la unión

Estas son las ventajas / beneficios de usar una unión:

  • Tiene menos memoria en comparación con la estructura.
  • Cuando usa una unión, solo se puede acceder directamente a la última variable.
  • Union se usa cuando tiene que usar la misma ubicación de memoria para dos o más miembros de datos.
  • Le permite mantener datos sobre un elemento de datos.
  • Su espacio asignado es igual al tamaño máximo del miembro de datos.

Desventajas de la estructura

Aquí están las desventajas / desventajas de usar la estructura:

  • Si la complejidad del proyecto de TI excede el límite, se vuelve difícil de administrar.
  • Muchos otros lugares requieren cambios para convertir una única estructura de datos en código. Por lo tanto, resulta difícil realizar un seguimiento de los cambios.
  • La estructura es más lenta porque requiere espacio de almacenamiento para todos los datos.
  • Puede recuperar cualquier miembro a la vez en una estructura, pero puede acceder a un miembro a la vez en la unión.
  • La estructura incluye espacio para cada miembro escrito en un parámetro interno y una unión ocupa espacio para un miembro con la mayor cantidad escrita en un parámetro interno.
  • La estructura soporta un conjunto flexible. La Unión no apoya un conjunto flexible.

Desventajas del sindicato

Aquí están las desventajas / desventajas de usar una unión:

  • Solo puede utilizar un miembro del sindicato a la vez.
  • No todas las variables de unión se pueden iniciar o utilizar con valores diferentes a la vez.
  • La Unión asigna un espacio de almacenamiento común a todos sus miembros.

EFECTOS PRINCIPALES:

  • A cada miembro se le asigna una ubicación de memoria única dentro de la estructura y, en la unión, todos los miembros de datos comparten una ubicación de memoria.
  • Un cambio en el valor de un miembro de datos no afectará a otros miembros de datos en la estructura, pero el valor de un miembro de datos cambiará el valor de otros miembros de datos en la unión.
  • La estructura se usa principalmente para almacenar diferentes tipos de datos y la unión se usa principalmente para almacenar uno de los muchos tipos de datos.
  • En la estructura, puede recuperar un miembro a la vez y, por otro lado, en la unión, puede acceder a un miembro a la vez.
  • La estructura admite una matriz flexible, mientras que union no admite una matriz flexible.

Deja un comentario

Tu dirección de correo electrónico no será publicada.

Salir de la versión móvil