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