Does #pragma pack(n) apply to all the structures in a source code or it has to be applied to each structure separately ? It's not clear from the manual. In one place it says: "You can use #pragma pack(n) to make sure that any structures with unaligned data are packed." In other: "This pragma aligns members of a structure to the minimum of n"
That is not an assumption that you should ever even think about making!
Even if you do happen to have a case where it is known (not assumed) that the two ends do just happen to have the same data alignment, it is probably still better to design as if they didn't.
If you rely upon it now, it is bound to change - and it will certainly be much harder to redesign everything retrospectively than it would have been to just do it "right" in the first place.
And, again, remember that alignment is not the only issue...