| #include <stdio.h> |
| |
| struct sss{ |
| int i1:17; |
| int i2:17; |
| int i3:20; |
| }; |
| |
| 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 = 131071.0; |
| for (i = 0; i < sizeof (struct sss); i++) |
| printf ("%x ", u.a[i]); |
| printf ("\n"); |
| u.sss.i2 = 131071.0; |
| for (i = 0; i < sizeof (struct sss); i++) |
| printf ("%x ", u.a[i]); |
| printf ("\n"); |
| u.sss.i3 = 1048575.0; |
| for (i = 0; i < sizeof (struct sss); i++) |
| printf ("%x ", u.a[i]); |
| printf ("\n"); |
| return 0; |
| } |