/Zp (Struct Member Alignment)
Collapse the table of content
Expand the table of content
Important This document may not represent best practices for current development, links to downloads and other resources may no longer be valid. Current recommended version can be found here. ArchiveDisclaimer

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

Option Result
/Zp1 Packs structures on 1-byte boundaries
/Zp2 Packs structures on 2-byte boundaries
/Zp4 Packs structures on 4-byte boundaries
/Zp8 Packs structures on 8-byte boundaries (default)
/Zp16 Packs structures on 16-byte boundaries
/Zp Specifies the same packing for all structures in a module.

/Zp is the same as /Zp1.

You can also use #pragma pack to control structure packing.

To set this compiler option in the Visual Studio development environment

  1. Open the project's Property Pages dialog box. For details, see Setting Visual C++ Project Properties.
  2. Click the C/C++ folder.
  3. Click the Code Generation property page.
  4. Modify the Struct Member Alignment property.

To set this compiler option programmatically

See StructMemberAlignment Property.

See Also

Compiler Options | Setting Compiler Options

© 2016 Microsoft