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