projprog/C13.4.c
2021-11-19 19:11:50 +01:00

26 lines
696 B
C

#include <stdio.h>
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));
}