26 lines
696 B
C
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));
|
|
}
|