1 
2 struct Foo {
3   union {
4     int zero;
5     unsigned int one;
6   } num1;
7   struct X {
8       int rock;
9       unsigned int rock2;
10   };
11   union {
12     int pebble;
13     X x;
14     union {
15       int qux;
16       unsigned int mux;
17     };
18     unsigned int boulder;
19   };
20   union {
21     int paper;
22     unsigned int cloth;
23   };
24   union {
25     int two;
26     unsigned int three;
27   } num2;
28 };
29 
30 union Bar {
31   int x;
32   unsigned int y;
33 };
34 
35 
main()36 int main()
37 {
38   Foo foo = {0, 0};
39 
40   foo.paper = 33;
41   foo.pebble = 44;
42   foo.mux = 55;
43 
44   Bar bar = {0};
45 
46   union {
47     int z;
48     unsigned int w;
49   }; w = 0;
50 
51   bar.x = 33;
52 
53   w = 45;
54 
55 }
56