Earlier quoted context omitted.
I'll assume you're right. Thanks for pointing that out. Your C sounds fresher than mine. I used it heavily from 90-95 or so but later moved on to higher languages like Java and Python. If what you point out about the syntax is accurate, I find that to be a counter-intuitive design decision.
It works because C structs are just contiguous bits of memory, interpreted as various fields. A pointer to a struct points to the start of that contiguous bit of memory. Child Struct: +---------------+-----------------+ | parent struct | child fields | +---------------+-----------------+ ^ \--- pointers to the struct point at the start You can cast this child struct to a parent struct, which is like saying 'interpret…
Well... almost. C structs can have internal padding -- but the C standard doesn't allow padding before the first element, so that first element is guaranteed to begin at the beginning of the struct.