/Zp (Struct Member Alignment)
The Struct Member Alignment (/Zpn) option controls how the members of a structure are packed into memory and specifies the same packing for all structures in a module. When you specify this option, each structure member after the first is stored on either the size of the member type or n-byte boundaries (where n is 1, 2, 4, 8, or 16), whichever is smaller.
You should not use this option unless you have specific alignment requirements.
|Command Line||Project Settings||Result|
|/Zp1||1 Byte||Packs structures on 1-byte boundaries|
|/Zp2||2 Bytes||Packs structures on 2-byte boundaries|
|/Zp4||4 Bytes||Packs structures on 4-byte boundaries|
|/Zp8||8 Bytes||Packs structures on 8-byte boundaries (default)|
|/Zp16||16 Bytes||Packs structures on 16-byte boundaries|
|/Zp||Not applicable||Specifies the same packing for all structures in a module.|
You can also use #pragma pack to control structure packing.
IDE Settings (Project Settings dialog box)
|C/C++||Code Generation||Struct member alignment||Select the desired value from the control.|