struct foo { int a; int b; char c; float d; double e; struct { int s1; char s2; int s3; union { int u1; char u2; double u3; } my_union; struct { int crazy_1; union { struct { int big_field; char my_char; }; int blabla; } union_2; } my_inner; } my_inner2; }; int main (int argc, char *argv[]) { struct foo a; return 0; }