Structs are used to represent physical hardware at the very lowest levels. As such the compiler cannot move things a round to suit at that level.
However it would not be unreasonable to have a #pragma that let the compiler re-arrange purely memory based structs that are only used internally to the program. However I don't know of such a beast (but that doesn't meant squat - I'm out of touch with C/C++)