| #include <stdio.h> |
| |
| struct sss{ |
| int i1:18; |
| int i2:5; |
| int i3:16; |
| }; |
| |
| static union u{ |
| struct sss sss; |
| unsigned char a[sizeof (struct sss)]; |
| } u; |
| |
| int main (void) { |
| int i; |
| for (i = 0; i < sizeof (struct sss); i++) |
| u.a[i] = 0; |
| u.sss.i1 = 262143.0; |
| for (i = 0; i < sizeof (struct sss); i++) |
| printf ("%x ", u.a[i]); |
| printf ("\n"); |
| u.sss.i2 = 31.0; |
| for (i = 0; i < sizeof (struct sss); i++) |
| printf ("%x ", u.a[i]); |
| printf ("\n"); |
| u.sss.i3 = 65535.0; |
| for (i = 0; i < sizeof (struct sss); i++) |
| printf ("%x ", u.a[i]); |
| printf ("\n"); |
| return 0; |
| } |