struct ab { int a; int b; };
union c { struct ab ab_short_circuit; int a; };
union c c1; c1.a = 1; c1.b = 2;
(However, in your example, c1.a is ambiguous, so it won't compile.)
(But this is my point, it is should not be ambiguous.)
struct ab { int a; int b; };
union c { struct ab ab_short_circuit; int a; };
union c c1; c1.a = 1; c1.b = 2;