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;
Yes, it will work. And it is one of the core principle of Object Oriented using C. See this answer 'Object-orientation in C' for more examples about extending (i.e inheritance).