union my_union { struct { int a; int b; }; struct { char a; short b; void *c; } v; }; And I want to initialize 2 global variables, of `my_union' type, A and B to: ------------------------------------ A.a=1; A.b=2; B.v.a='a'; B.v.b=16; B.v.c=NULL; ------------------------------------ I know how to initialize A by: union my_union A = { 1, 2 }; But I don't know how to write the initializers for B. Can gcc support this feature?