1 #include <stdio.h> 2 3 struct sss{ 4 int i1:15; 5 int i2:1; 6 int i3:22; 7 }; 8 9 static union u{ 10 struct sss sss; 11 unsigned char a[sizeof (struct sss)]; 12 } u; 13 main(void)14int main (void) { 15 int i; 16 for (i = 0; i < sizeof (struct sss); i++) 17 u.a[i] = 0; 18 u.sss.i1 = 32767.0; 19 for (i = 0; i < sizeof (struct sss); i++) 20 printf ("%x ", u.a[i]); 21 printf ("\n"); 22 u.sss.i2 = 1.0; 23 for (i = 0; i < sizeof (struct sss); i++) 24 printf ("%x ", u.a[i]); 25 printf ("\n"); 26 u.sss.i3 = 4194303.0; 27 for (i = 0; i < sizeof (struct sss); i++) 28 printf ("%x ", u.a[i]); 29 printf ("\n"); 30 return 0; 31 } 32