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

Uniones C

Uniones C

En este tutorial, aprenderá acerca de las uniones en la programación en C. Más específicamente, cómo crear sindicatos, acceder a sus miembros y aprender las diferencias entre sindicatos y estructuras.

Una unión es un tipo definido por el usuario similar a las estructuras en C excepto por una diferencia clave.

Las estructuras asignan suficiente espacio para almacenar todos sus miembros, mientras que los sindicatos solo pueden tener un valor de miembro a la vez .


¿Cómo definir una unión?

Usamos el union palabra clave para definir uniones. He aquí un ejemplo:

union car
{
  char name[50];
  int price;
};

El código anterior define un tipo derivado union car .


Crear unión de variables

Cuando se define una unión, crea un tipo definido por el usuario. Sin embargo, no se asigna memoria. Para asignar memoria para un tipo de unión dado y trabajar con él, necesitamos crear variables.

Así es como creamos variables de unión.

union car
{
  char name[50];
  int price;
};

int main()
{
  union car car1, car2, *car3;
  return 0;
}

Otra forma de crear variables de unión es:

union car
{
  char name[50];
  int price;
} car1, car2, *car3;

En ambos casos, las variables de unión car1 , coche2 , y un puntero de unión car3 de union car tipo son creados.


Acceso a miembros de un sindicato

Usamos el . operador para acceder a los miembros de un sindicato. Y para acceder a las variables de puntero, usamos el -> operador.

En el ejemplo anterior,


Diferencia entre uniones y estructuras

Tomemos un ejemplo para demostrar la diferencia entre uniones y estructuras:

#include <stdio.h>
union unionJob
{
   //defining a union
   char name[32];
   float salary;
   int workerNo;
} uJob;

struct structJob
{
   char name[32];
   float salary;
   int workerNo;
} sJob;

int main()
{
   printf("size of union = %d bytes", sizeof(uJob));
   printf("\nsize of structure = %d bytes", sizeof(sJob));
   return 0;
}

Salida

size of union = 32
size of structure = 40

¿Por qué esta diferencia en el tamaño de las variables de unión y estructura?

Aquí, el tamaño de sJob es de 40 bytes porque

Sin embargo, el tamaño de uJob es de 32 bytes. Es porque el tamaño de una variable de unión siempre será el tamaño de su elemento más grande. En el ejemplo anterior, el tamaño de su elemento más grande (name[32] ), tiene 32 bytes.

Con un sindicato, todos los miembros comparten la misma memoria .


Ejemplo:Acceso a miembros de la Unión

#include <stdio.h>
union Job {
   float salary;
   int workerNo;
} j;

int main() {
   j.salary = 12.3;

   // when j.workerNo is assigned a value,
   // j.salary will no longer hold 12.3
   j.workerNo = 100;

   printf("Salary = %.1f\n", j.salary);
   printf("Number of workers = %d", j.workerNo);
   return 0;
}

Salida

Salary = 0.0
Number of workers = 100

Para saber dónde se usan las uniones, visite ¿Por qué necesitamos las uniones C?


Lenguaje C

  1. enumeraciones de Java
  2. Constructor de enumeración de Java
  3. C - Uniones
  4. Cómo dimensionar una válvula neumática
  5. La inteligencia artificial en el tamaño del mercado de fabricación alcanzará los 4.798 millones de dólares estadounidenses para 2026
  6. Corte de barras de aluminio a medida
  7. ¿Qué es una unión de tuberías?
  8. Cómo dimensionar un acondicionador de aire comercial
  9. ¿Qué tamaño de torno necesito para la armería?
  10. El tamaño importa para los receptores de aire
  11. ¿Cómo dimensiono un compresor de aire industrial?