We recommend using Visual Studio 2017
This documentation is archived and is not being maintained.

/Zp (Struct Member Alignment)

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.

The available values are described in the following table.


Packs structures on 1-byte boundaries. Same as /Zp.


Packs structures on 2-byte boundaries.


Packs structures on 4-byte boundaries.


Packs structures on 8-byte boundaries (default).


Packs structures on 16-byte boundaries.

You should not use this option unless you have specific alignment requirements.

You can also use pack to control structure packing. For more information about alignment, see:

To set this compiler option in the Visual Studio development environment

  1. Open the project's Property Pages dialog box. For details, see How to: Open Project Property Pages.

  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