The language spec for C constrains the memory layout of a struct. From 6.7.3.2.7 of the draft spec:
> a structure is a type consisting of a sequence of members, whose storage is allocated in an ordered sequence, (emphasis added)
> a structure is a type consisting of a sequence of members, whose storage is allocated in an ordered sequence, (emphasis added)