Diferencia entre estructura y unión

Tabla de contenido:

Anonim

¿Qué es la estructura?

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

Todos los elementos de la estructura se almacenan en ubicaciones de memoria contiguas. La 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á:

  • ¿Qué es la estructura?
  • Que es Union
  • Sintaxis de la estructura de declaración
  • Ejemplo de estructura en programación C
  • Sintaxis de declarar unión
  • Ejemplo de Unión en Programación C
  • Estructura vs. Unión
  • Ventajas de la estructura
  • Ventajas de la unión
  • Desventajas de la estructura
  • Desventajas de la unión

Que es Union

Union es un tipo de datos definido por el usuario, como una estructura. Union 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 distintos tipos de objetos compartan la misma ubicación.

Sintaxis de la estructura de declaración

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

La estructura se declara utilizando la palabra clave "struct" y el nombre de la estructura. Los números 1, 2 y 3 son miembros individuales de la estructura. La parte del cuerpo termina con un punto y coma (;).

Ejemplo de estructura en programación C

#include 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: %d\n", sdt. roll_no);printf("Student marks: %.1f\n", sdt.marks);return 0;}

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

Después de esto, se crea una variable de estructura sdt para almacenar la información del estudiante y mostrarla 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

Ingrese las calificaciones de los estudiantes: 67

La información que ha ingresado es:

Nombre del estudiante: John

Número de registro de estudiantes: 21

Calificaciones de los estudiantes: 67.0

Sintaxis de declarar unión

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

La unión se declara utilizando la palabra clave "unión" y el nombre de la unión. Los números 1, 2 y 3 son miembros individuales del sindicato. La parte del cuerpo termina con un punto y coma (;).

Ejemplo de Unión en Programación C

#include union item{int x;float y;char ch;};int main( ){union item it;it.x = 12;it.y = 20.2;it.ch = 'a';printf("%d\n", it.x);printf("%f\n", it.y);printf("%c\n", it.ch);return 0;}

Producción:

1101109601

20.199892

a

En el programa anterior, puede ver que los valores de xey se corrompen. Solo la 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 datos cuyo valor está almacenado actualmente ocupará espacio en la memoria. Por fin se almacenó el valor de la variable ch, por lo que se pierde el valor del resto de variables.

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 dentro de la estructura se le asigna una ubicación de memoria única. En unión, todos los miembros de datos comparten una ubicación de memoria.
Cambiar el valor de un miembro de datos no afectará a otros miembros de datos en la estructura. Cambiar el valor de un miembro de datos cambiará el valor de otros miembros de datos en la unión.
Le permite inicializar varios miembros a la vez. Le permite inicializar solo el 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.
Ocupa espacio para todos y cada uno de los miembros escritos en parámetros internos. Ocupa espacio para un miembro que tiene el tamaño más alto escrito en parámetros internos.
Puede recuperar cualquier miembro a la vez. Puede acceder a un miembro a la vez en el sindicato.
Es compatible con matriz flexible. No admite una matriz flexible.

Ventajas de la estructura

Aquí hay 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 representar el registro completo usando un solo nombre.
  • En estructura, podemos pasar un conjunto completo de registros a cualquier función usando un solo parámetro.
  • Puede utilizar una matriz de estructura para almacenar más registros con tipos similares.

Ventajas de la unión

A continuación, se muestran los pros y los beneficios de usar union:

  • Ocupa menos memoria en comparación con la estructura.
  • Cuando usa union, 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 almacenar datos de un solo miembro 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 del uso de la estructura:

  • Si la complejidad del proyecto de TI va más allá del límite, se vuelve difícil de administrar.
  • El cambio de una estructura de datos en un código requiere cambios en muchos otros lugares. Por lo tanto, los cambios se vuelven difíciles de rastrear.
  • La estructura es más lenta porque requiere espacio de almacenamiento para todos los datos.
  • Puede recuperar cualquier miembro a la vez en la estructura, mientras que puede acceder a un miembro a la vez en la unión.
  • La estructura ocupa espacio para todos y cada uno de los miembros escritos en parámetros internos, mientras que la unión ocupa espacio para un miembro que tiene el tamaño más alto escrito en parámetros internos.
  • La estructura admite una matriz flexible. Union no admite una matriz flexible.

Desventajas de la unión

A continuación, se muestran las desventajas / desventajas de usar union:

  • Puede utilizar solo un miembro del sindicato a la vez.
  • Todas las variables de unión no se pueden inicializar ni utilizar con valores variables a la vez.
  • Union asigna un espacio de almacenamiento común para todos sus miembros.

DIFERENCIAS CLAVE:

  • A cada miembro dentro de la estructura se le asigna una ubicación de memoria única, mientras que todos los miembros de datos comparten una ubicación de memoria.
  • Cambiar el valor de un miembro de datos no afectará a otros miembros de datos en la estructura, mientras que cambiar 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 varios tipos de datos, mientras que la unión se usa principalmente para almacenar uno de los muchos tipos de datos.
  • En la estructura, puede recuperar cualquier miembro a la vez, por otro lado en la unión, puede acceder a un miembro a la vez.
  • La estructura admite una matriz flexible, mientras que la unión no admite una matriz flexible.