#include struct foo_t { int foo; size_t bar; const char *baz; struct foo_t *self; union { double should_not_appear; char *nor_should_this; } named; struct { long unnamed_sub_member; union { double one_more_level; long yes_really_one_more; }; }; struct {}; /* Empty ones */ union {}; int after_the_end; }; struct foo_t used;