#include union monu { unsigned char a[2]; float b; long long int c; }; // Si on essaie d'accéder à un autre champ que celui initialisé, alors la valeur sera simplement lue mais sous l'œil de la variable // demandée. Ici, le programme affiche la valeur 0.42e-3 convertie en binaire puis reconverti en entier (plus des octets arbitraires «non initialisés» puisquqe long long int est plus grand que float) // La taille de l'union est, comme attendu, le max de la taille de ses composantes. // Ici, sizeof(union monu)=sizeof(long long int)=8 octets. int main(){ union monu v = {}; v.b = 0.42e-3; printf("%lld\n", v.c); printf("%ld\n", sizeof(union monu)); }