/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)

Tab Category Control Setting
C/C++ Code Generation Struct member alignment Select the desired value from the control.