Union en C

Union en C

Comme l'union de structure est également un concept important en C. Il existe deux types que le type de données existe en C. Ce sont des types de données primitifs et des types de données non primitifs ou définis par l'utilisateur. L'union est un exemple de type de données non primitif.

Quelles sont le syndicat et ses principales caractéristiques

L'union est un moyen de regrouper les variables. Parfois, nous devons stocker des informations dans un groupe.

Supposons que nous devons stocker les informations de certains étudiants. Les informations signifient leur nom, leur adresse, le mobile non, le sexe, les marques, les agrégats, etc. Une situation se produit lorsque un seul membre de données de ce groupe de variables doit contenir une valeur à la fois. Dans cette situation, si nous stockons ces données sur les multiples variables pour chaque étudiant, le programme devient très complexe et augmente la vitesse d'exécution du programme.

Pour réduire ce problème, nous introduisons l'union. Avec l'aide du syndicat, nous pouvons regrouper ces variables de chaque élève en une seule variable et contenir l'un de ces groupes de variables à la fois.

Union est une collection d'éléments différents. Difficile signifie que nous pouvons stocker différentes valeurs de type de données comme int, char, float, string, etc.

Si nous stockons les informations d'un étudiant, nous devons stocker son nom, marques, mobile non, etc. Le nom est une chaîne, Mark est un flotteur, mobile no est un tableau entier. C'est donc un groupe d'éléments différents.

Définir un syndicat signifie créer un nouveau type de données, Et nous savons que la création d'un nouveau type de données signifie que nous utilisons ici le type de données non primitif.

Union est un type de données défini par l'utilisateur comme la structure. Mais les membres du syndicat partagent le même emplacement de mémoire.

Exemple

Exemple syndical


int x;
char y;
e;

Si nous imprimons l'adresse de X et Y., Ils peuvent contenir le même emplacement d'adresse

Il peut exister différents types de membres de données dans le syndicat. Mais la taille du syndicat est calculée en fonction du plus grand membre de données présent dans le syndicat.

Exemple de programmation 1

#inclure
Élément syndical // Définition d'un autre syndicat;

int x;
flotter y;
Char Z;
;
int main ()

printf («% d», sizeof (élément syndical));
retour 0;

Sortir

Explication

Ici, nous définissons un syndicat appelé article. Les membres des données de cette syndicat sont X, Y et Z, qui sont respectivement des données entières, flottantes et de type de caractère. Maintenant à l'intérieur de la fonction Main (), nous utilisons la taille de l'opérateur pour déterminer la taille de l'élément de type de données. Il obtient la sortie 4 car le type de données de flotteur est le type de données le plus élevé présent dans le syndicat en tant que membre de données.

Comment définir une union

Exemple syndical // Définition d'un syndicat;

type de données var1;
type de données var2;
-------------------- ;
Type de données Varn;
;
Élément syndical // Définition d'un autre syndicat;

int x;
flotter y;
Char Z;
;

Consommation de mémoire

Aucune mémoire n'est consommée pour la définition de l'union. Parce que la mémoire est consommée au moment de la déclaration d'une variable mais pas dans le cas de définition du type de données.

Comme la définition de l'Union signifie créer un nouveau type de données, la mémoire n'est pas consommée. La mémoire est consommée au moment de la déclaration d'un type particulier de variable.

Structure vs. syndicat

Article de structure Union Item

Article de structure Union Item

int x; int x;
flotter y; flotter y;
Char Z; Char Z;

Struct Item i1; INTÉRIEUR DE L'UNION I1;

Explication

Dans la structure, nous pouvons créer l'emplacement de la mémoire pour un groupe de variables. Tout le membre de données de la structure contient de la mémoire à la fois.

Où dans un syndicat, nous pouvons créer le bloc de mémoire de la mémoire la plus élevée contient qui existe en tant que variable de membre.

Dans la structure, nous créons une structure qui prend (2 + 4 + 1) = 7 octets. Comme entier, Float, Char prend respectivement la mémoire 2, 4 et 1 octets.

Où dans le syndicat, nous créons une union qui prend 4 octets Bloc de mémoire comme la variable de type de données flottantes existe ici comme la variable de membre de type de données la plus élevée.

Avantages de l'union

Avec l'aide du syndicat, nous pouvons accéder à toutes les données une fois à la fois. Si nous voulons accéder à une autre variable membre, cela signifie que la variable ou la valeur de la variable écrase la valeur précédente d'une variable. Cela signifie qu'il prend la valeur de la dernière variable qui existe dans l'Union.

Exemple de programmation 2

#inclure
Élément syndical // Définition d'un autre syndicat;

int x;
flotter y;
Char Z;
;
int main ()

INTÉRIEUR DE L'UNION 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);
retour 0;

Sortir

Explication

D'après la sortie, nous pouvons avoir la mauvaise perception que l'union consomme l'espace mémoire (2 + 4 + 1) = 7 octets. Mais c'est une mauvaise perception. Parce que lorsque nous utilisons une variable entière, nous pouvons l'utiliser. Ensuite, nous utilisons la variable flottante; Cette variable écrase la valeur de x.

Après avoir utilisé la valeur de Y, si nous voulons imprimer à nouveau la valeur de x, il obtient la sortie x = 0. Il peut consommer la mémoire d'une variable à un moment de la variable de type de données la plus élevée.

Exemple de programmation 3

#inclure
Exemple syndical // Définition d'une autre union;

int x;
Char Z;
; u;
int main ()

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

Sortir

Explication

Ici, nous définissons un syndicat nommé exemple. À l'intérieur du syndicat, il y a deux membres de données qui existent. L'un est la variable de type entier x; un autre est la variable de type de caractère z. À l'intérieur de la fonction Main (), x est attribué 65.

Maintenant, si nous imprimons la valeur de x, alors il montre une valeur de 65. Étonnamment, si nous imprimons la valeur de Y, cela montre un résultat. Alors que les membres de données du syndicat partagent la même emplacement d'adresse de notre mémoire et la valeur binaire de 65 est a, elle montre le résultat A comme valeur de caractère.

Conclusion

Comme l'union de structure est également un concept important en C. Grâce au syndicat, nous apprenons que de nombreux membres ou variables de données peuvent partager le même emplacement d'adresse dans notre mémoire. C'est donc une caractéristique unique de l'Union.