I recently came across a colleague\'s code that looked like this:
typedef struct A { int x; }A; typedef struct B { A a; int d; }B; void fn(){ B *b;
That's a horrible idea. As soon as someone comes along and inserts another field at the front of struct B your program blows up. And what is so wrong with b.a.x?
b.a.x