struct foo { enum foo_types type; union { struct { char *a; char *b; } s0; struct { struct bar *a; struct bar *b; unsigned n; } s1; struct { struct bar *x; struct bar *y; struct bar *z; } s2; } u; };