Union
Une union te permet une manière de regarder les mêmes données avec différents types, ou d'employer les mêmes données avec différents noms. Les syndicats sont semblables aux structures. Une union est déclarée et employée des mêmes manières qu'une structure est.
Une union diffère d'une structure dans seulement celui-là de ses membres peut être employée à la fois. La raison de ceci est simple. Tous membres d'une union occupent le même secteur de la mémoire. Ils sont étendus sur l'un l'autre.
Des syndicats sont définis et déclarés de la même mode que des structures. La seule différence dans les déclarations est que l'union de mot-clé est employée au lieu du struct. Pour définir une union simple d'un char variable et d'une variable de nombre entier, vous écririez ce qui suit :
union shared {
char c;
int i;
};
Cette union, partagée, peut être employée pour créer des exemples d'une union qui peut tenir une valeur c de caractère ou une valeur i. de nombre entier. C'est OU condition. À la différence d'une structure qui tiendrait les deux valeurs, l'union peut tenir seulement une valeur à la fois.
Une union peut être initialisée sur sa déclaration. Puisque seulement un membre peut être employé à la fois et seulement un peut être initialisé. Pour éviter la confusion, seulement le premier membre de l'union peut être initialisé. Le code suivant montre un exemple de l'union partagée étant déclarée et initialisée :
union shared generic_variable = {`@'};
Noter que l'union generic_variable a été initialisée juste comme le premier membre d'une structure serait initialisé.
Différents travailleurs syndiqués peuvent être employés de la même manière qui structurent des membres peuvent être employés en employant l'opérateur de membre (.). Cependant, il y a une différence importante dans les travailleurs syndiqués de accès.
Seulement un travailleur syndiqué devrait être accédé à la fois. Puisqu'une union stocke ses membres sur l'un l'autre, il est important d'accéder à seulement un membre à la fois.
|