#include typedef struct { union { int x; int a; }; union { int y; int b; }; } anon_unions; typedef struct { union { int x; int a; } xa; union { int y; int b; } yb; } unions; int main(int argc,char **argv) { anon_unions v = {.a = 5}; int *m = (int *) &v; printf("%08x %08x\n",m[0],m[1]); unions v2 = {.xa.a = 5}; m = (int *) &v2; printf("%08x %08x\n",m[0],m[1]); return 0; }