Le mot-clé des syndicats
union tag {
union_member(s);
/* additional statements may go here */
}instance;
Le mot-clé des syndicats est employé pour déclarer des syndicats. Une union est une collection d'une ou plusieurs variables (union_members) qui ont été groupées sous un nom simple. En outre, chacun de ces travailleurs syndiqués occupe le même secteur de la mémoire.
L'union de mot-clé identifie le commencement d'une définition des syndicats. Elle a suivi d'une étiquette qui est le nom donné à l'union. Après l'étiquette sont les travailleurs syndiqués inclus dans les croisillons.
Un exemple, la déclaration réelle d'une union, peut également être défini. Si vous définissez la structure sans exemple, il est juste un calibre qui peut être employé plus tard dans un programme pour déclarer des structures. Ce qui suit est le format d'un calibre :
union tag {
union_member(s);
/* les rapports additionnels peuvent aller ici */
};
Pour employer le calibre, vous aviez l'habitude le format suivant :
union tag instance;
Pour employer ce format, vous devez avoir précédemment déclaré une union avec l'étiquette donnée.
/* Déclarer un calibre des syndicats appelé l'étiquette */
union tag {
int num;
char alps;
}
/* Use the union template */
union tag mixed_variable;
/* Déclarer une union et un exemple ensemble */
union generic_type_tag {
char c;
int i;
float f;
double d;
} generic;
/* Initialize a union. */
union date_tag {
char full_date[9];
struct part_date_tag {
char month[2];
char break_value1;
char day[2];
char break_value2;
char year[2];
} part_date;
}date = {"09/12/80"};
Mieux comprenons-le avec l'aide des exemples :
#include <stdio.h>
int main()
{
union
{
int value; /* This is the first part of the union */
struct
{
char first; /* These two values are the second part of it */
char second;
} half;
} number;
long index;
for (index = 12 ; index < 300000L ; index += 35231L)
{
number.value = index;
printf("%8x %6x %6x\n", number.value,
number.half.first,
number.half.second);
}
return 0;
}
Et le rendement du programme sera montré comme suit :
c c 0
89ab ffab ff89
134a 4a 13
9ce9 ffe9 ff9c
2688 ff88 26
b027 27 ffb0
39c6 ffc6 39
c365 65 ffc3
4d04 4 4d
|
|