Unión en C

Unión en C

Como la sindicato de estructura también es un concepto importante en c. Hay dos tipos que el tipo de datos existe en C. Son tipos de datos primitivos y tipos de datos no probitivos o definidos por el usuario. Union es un ejemplo de un tipo de datos no probitivo.

¿Cuáles son los sindicatos y sus principales características?

Union es una forma de agrupar variables. A veces tenemos que almacenar información en un grupo.

Supongamos que tenemos que almacenar la información de algunos estudiantes. La información significa su nombre, dirección, móvil no, género, marcas, agregados, etc. Una situación ocurre cuando solo un miembro de datos de este grupo de variables tiene que contener un valor a la vez. En esta situación, si almacenamos estos datos en las múltiples variables para cada estudiante, el programa se vuelve muy complejo y aumenta la velocidad de ejecución del programa.

Para reducir este problema, presentamos la Unión. Con la ayuda de la Unión, podemos agrupar estas variables de cada estudiante en una sola variable y contener uno de estos grupos de variables a la vez.

Union es una colección de elementos diferentes. Diferente significa que podemos almacenar diferentes valores de tipo de datos como int, char, flotación, cadena, etc.

Si almacenamos la información de un estudiante, tenemos que almacenar su nombre, marcas, móviles, etc. El nombre es una cadena, Mark es un flotador, móvil NO es una matriz entera. Entonces es un grupo de elementos diferentes.

Definir unión significa crear un nuevo tipo de datos, y sabemos que crear un nuevo tipo de datos significa que usamos aquí el tipo de datos no estimitivos.

Union es un tipo de datos definido por el usuario como estructura. Pero los miembros de la Unión comparten la misma ubicación de memoria.

Ejemplo

Ejemplo de sindicato


int x;
char y;
e;

Si imprimimos la dirección de x e y., Pueden contener la misma ubicación de dirección

Puede existir diferentes tipos de miembros de datos en la Unión. Pero el tamaño de la Unión se calcula de acuerdo con el miembro de datos más grande presente en la Unión.

Programación Ejemplo 1

#incluir
Artículo de la Unión // Definición de otra unión;

int x;
flotante y;
char z;
;
int main ()

printf (" %d", sizeOf (elemento sindical));
regresar 0;

Producción

Explicación

Aquí definimos un sindicato llamado ítem. Los miembros de los datos de esta unión son X, Y y Z, que son datos enteros, flotantes y de tipo de caracteres, respectivamente. Ahora dentro de la función Main (), usamos el operador SizeOf para determinar el tamaño del elemento de tipo de datos. Obtiene salida 4 ya que el tipo de datos de flotación es el tipo de datos más alto presente en la unión como miembro de datos.

Cómo definir una unión

Ejemplo de sindicato // Definición de un sindicato;

Tipo de datos VAR1;
Tipo de datos VAR2;
-------------------- ;
Tipo de datos varn;
;
Artículo de la Unión // Definición de otra unión;

int x;
flotante y;
char z;
;

Consumo de memoria

No se consume memoria para la definición de unión. Porque la memoria se consume en el momento de la declaración de una variable pero no en el caso de definir el tipo de datos.

Como definir sindicato significa crear un nuevo tipo de datos, la memoria no se consume. La memoria se consume en el momento de la declaración de un tipo particular de variable.

Estructura vs. Unión

Artículo de struct ítem elemento

Artículo de struct ítem elemento

int x; int x;
flotante y; flotante y;
char z; char z;

Struct item i1; Artículo de la Unión I1;

Explicación

En la estructura, podemos crear la ubicación de memoria para un grupo de variables. Todo el miembro de los datos de la estructura contiene memoria a la vez.

En dónde en un sindicato, podemos crear el bloque de memoria de la memoria más alta contiene que existe como una variable miembro.

En la estructura creamos una estructura que toma (2 + 4 + 1) = 7 bytes. Como Integer, Float, Char toma la memoria de 2, 4 y 1 byte, respectivamente.

En qué parte del sindicato, creamos un sindicato que toma 4 bytes bloque de memoria, ya que la variable de tipo de datos flotante existe aquí como la variable de miembro de tipo de datos más alta.

Ventajas de la Unión

Con la ayuda del sindicato, podemos acceder a cualquier dato una vez a la vez. Si queremos acceder a otra variable de miembro, significa que la variable o el valor de la variable sobrescribe el valor anterior de una variable. Significa que toma el valor de la última variable que existe en la Unión.

Programación Ejemplo 2

#incluir
Artículo de la Unión // Definición de otra unión;

int x;
flotante y;
char z;
;
int main ()

Artículo de la Unión I1;
i1. x = 5;
printf ("\ n x = %d", i1. X ) ;
i1. y = 3. 5;
printf ("\ n y = %f", i1. y);
i1. z = 'a';
printf ("\ n z = %c \ n", i1. z);
regresar 0;

Producción

Explicación

Desde la salida, podemos tener la percepción incorrecta de que Union consume espacio de memoria (2 + 4 + 1) = 7 bytes. Pero es una percepción incorrecta. Porque cuando usamos la variable entera, podemos usar esto. Luego usamos la variable flotante; esa variable sobrescribe el valor de x.

Después de usar el valor de y, si queremos imprimir el valor de x nuevamente, obtiene la salida x = 0. Puede consumir la memoria de una variable en un momento de la variable de tipo de datos más alta.

Programación Ejemplo 3

#incluir
Ejemplo de sindicato // Definición de otra unión;

int x;
char z;
; u;
int main ()

u. x = 65;
printf ("x = %d \ n", u. X) ;
printf ("z = %c \ n", u. z);
regresar 0;

Producción

Explicación

Aquí definimos un sindicato llamado Ejemplo. Dentro del sindicato, hay dos miembros de datos que existen. Uno es la variable de tipo entero x; otro es la variable de tipo de personaje z. Dentro de la función principal (), se asigna a X 65.

Ahora, si imprimimos el valor de x, muestra un valor de 65. Sorprendentemente, si imprimimos el valor de y, muestra el resultado un. Como los miembros de los datos de la Unión comparten la misma ubicación de dirección de nuestra memoria y el valor binario de 65 es A, muestra el resultado A como un valor de carácter.

Conclusión

Como la sindicato de estructura también es un concepto importante en c. A través del sindicato, aprendemos que muchos miembros o variables de datos pueden compartir la misma ubicación de dirección en nuestra memoria. Entonces es una característica única de la Unión.