Pas de dépendances
#include <stdio.h> union test { char d; int c; char s[5]; }; int main() { union test T; printf("Sizeof : %d\n",sizeof(union test)); T.c=3; printf("c = %d\n",T.c); T.s[3]=1; // bouffe l'espace de c. printf("c = %d\n",T.c); return 0; }
union est fait pour économiser de la mémoire.
ça marche comme un struct, sauf que les variables qu'il y a à l'intérieur n'ont pas chacune leur espace,
non, elles ont le MEME espace.
C'est à dire que si vous écrivez dans l'une et que vous en lisez une autre, il y a toutes les chance
que l'une aie écrasé les données de l'autre.
Intéret : ça prend moins de place !
Au lieu de prendre en mémoire la somme de toutes les variables, ça prend la place nécessaire pour stocker
la plus grosse uniquement.
Utilisation : si vous utilisez une structure et que vous savez pertinament que vous n'utiliserez
qu'une des données dedans pour une instance donnée, ça marche.
Exemple : vous faites un union avec un double, et un int.
Cet union servira a stocker un nombre. Selon l'endroit de votre programme, vous utiliserez l'un
ou l'autre. Vous pourrez changer quand vous voudrez. Il faut juste rester rigoureux...
Personnellement, je n'utilise pas souvent union. C'était plus utilisé jadis quand les PC avaient
peu de mémoire, et qu'il fallait l'économiser.
Mais enfin bon, voila, union existe.
