#include typedef enum { One, Two, Three } hi; typedef struct { hi k; union { void* boo; int i32; long l; double d; } u; } foo; int main() { printf ("foo size = %d\n", sizeof (foo)); printf ("k offset = %d\n", &((foo*)NULL)->k); printf ("u offset = %d\n", &((foo*)NULL)->u); printf ("u.boo offset = %d\n", &((foo*)NULL)->u.boo); printf ("u.d offset = %d\n", &((foo*)NULL)->u.d); }