union : permet plusieurs interprétations d'une même zone mémoire
Syntaxe:
union [<nom_union>]{
<type> <noms_de_variable>;
...
} [<variables_union>];
Description:
Une union est comparable à une structure, mais utilise une seule zone mémoire ayant plusieurs noms et plusieurs types.
On accède aux membres d'une union tout comme on accède aux membres d'une structure.
L'espace alloué en mémoire est suffisament important pour pouvoir stocker le plus grand des membres de l'union.
Exemple:
#include
int main(void) {
union int_ou_double {
int entier;
double reel;
} nbr;
printf("Taille de nbr.entier : %d\n", sizeof(nbr.entier));
printf("Taille de nbr.reel : %d\n", sizeof(nbr.reel));
printf("Taille de nbr : %d\n", sizeof(nbr));
/* La même zone contiendra tout d'abord la valeur 54,
qui sera effacee par la valeur 3.14 */
nbr.entier=54;
printf("nbr.entier:%d\n", nbr.entier);
nbr.reel=3.14;
printf("nbr.reel:%f\n", nbr.reel);
return 0;
}