Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Industrial programming >> Lenguaje C

Estructuras vs. Uniones en C: Guía práctica

¿Qué es una estructura?

Una estructura es un tipo de dato definido por el usuario en C que agrupa elementos de datos lógicamente relacionados de diferentes tipos en una sola unidad. Cada miembro ocupa su propia ubicación de memoria contigua, por lo que una estructura puede contener múltiples valores simultáneamente.

Ejemplo: un registro de estudiante que almacena un nombre, número de matrícula y notas bajo un solo nombre de variable.

¿Qué es una unión?

Una unión también es un tipo definido por el usuario, pero todos los miembros comparten el mismo espacio de memoria. El tamaño de la unión es igual al tamaño de su miembro más grande. Esta característica hace que las uniones sean ideales para escenarios con memoria limitada donde solo se necesita un miembro a la vez.

Declaración de una estructura

struct Estudiante { char nombre[60]; int num_matricula; float notas; }; 

Observa el uso de la palabra clave struct y el punto y coma después de la llave de cierre.

Ejemplo: Uso de una estructura

#include <stdio.h> struct Estudiante { char nombre[60]; int num_matricula; float notas; } est; int main(void) { printf("Ingrese la siguiente información:\n"); printf("Nombre del estudiante: "); fgets(est.nombre, sizeof(est.nombre), stdin); printf("Número de matrícula: "); scanf("%d", &est.num_matricula); printf("Notas: "); scanf("%f", &est.notas); printf("\nDatos ingresados:\n"); printf("Nombre: %s", est.nombre); printf("Número de matrícula: %d\n", est.num_matricula); printf("Notas: %.1f\n", est.notas); return 0; } 

Salida (ejemplo):

Ingrese la siguiente información: Nombre del estudiante: James Número de matrícula: 21 Notas: 67 Datos ingresados: Nombre: James Número de matrícula: 21 Notas: 67.0 

Declaración de una unión

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

Ejemplo: Uso de una unión

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

Como todos los miembros comparten memoria, establecer ch sobrescribe los valores previos de x y y. Solo el último valor almacenado es válido.

Estructura vs. Unión

Estructuras vs. Uniones en C: Guía práctica

CaracterísticaEstructuraUnión
Palabra clave de declaraciónstructunion
Disposición de memoriaCada miembro obtiene su propio espacioTodos los miembros comparten un espacio
Cambiar un miembroNo afecta a los otrosSobrescribe a los otros miembros
InicializaciónTodos los miembros pueden inicializarse simultáneamenteSolo el primer miembro puede inicializarse a la vez
Tamaño totalSuma de tamaños de todos los miembrosTamaño del miembro más grande
Uso típicoAlmacenar datos relacionados de varios tiposAlmacenar uno de varios tipos posibles
Patrón de accesoCualquier miembro puede accederse en cualquier momentoSolo un miembro es válido a la vez
Soporte de array flexibleSoportadoNo soportado

Cuándo usar cada uno

Ventajas y desventajas

Ventajas de la estructura

Desventajas de la estructura

Ventajas de la unión

Desventajas de la unión

Lenguaje C

  1. Brazing vs. Soldadura Blanda: Diferencias Clave Explicadas
  2. Motor 2 Tiempos vs 4 Tiempos: Diferencias Clave Explicadas
  3. Entendiendo Motores DC vs AC: Diferencias Clave y Guía de Compra
  4. Amianto vs. fibra de vidrio: Diferencias clave, usos y consideraciones de seguridad
  5. Struct vs Class en C++: Diferencias Clave, Sintaxis y Mejores Casos de Uso
  6. C# vs C++: Comparación clara de características, rendimiento y casos de uso
  7. C vs C++: Diferencias clave y cuándo elegir cada uno
  8. C vs Java: Comparación exhaustiva de características, historia y aplicaciones
  9. strlen() vs. sizeof() en C: Entendiendo sus diferencias y uso correcto
  10. Python vs JavaScript: Diferencias Clave, Características y Cuándo Elegir Cada Uno
  11. Python vs Ruby: Comparativa Exhaustiva de Características, Ventajas y Casos de Uso