/Zp (Alineación de miembros de estructura)

Controla el modo en que los miembros del struct se empaquetan en la memoria y especifica el mismo empaquetado para todos los struct de un módulo.

Sintaxis

/Zp[1|2|4|8|16]

Comentarios

La opción /ZpN indica al compilador dónde almacenar los miembros del struct. El compilador almacena los miembros después del primero en un límite que es el menor de entre el tamaño del tipo de miembro o un límite de bytes de N.

En la siguiente tabla se describen los valores de empaquetado disponibles:

Argumento de /Zp Efecto
1 Empaqueta las estructuras en límites de 1 byte. Igual a /Zp.
2 Empaqueta las estructuras en límites de 2 bytes.
4 Empaqueta las estructuras en límites de 4 bytes.
8 Empaqueta las estructuras en límites de 8 bytes (valor predeterminado para x86, ARM y ARM64).
16 Empaqueta estructuras en límites de 16 bytes (valor predeterminado para x64 y ARM64EC).

No use esta opción a menos que tenga requisitos de alineación específicos.

Advertencia

Para los encabezados de C o C++ de Windows SDK, se asume que se usa la alineación predeterminada de la plataforma. No cambie el valor predeterminado al incluir los encabezados de Windows SDK, ya sea mediante /Zp en la línea de comandos o con #pragma pack. De lo contrario, es posible que la aplicación corrompa la memoria en el tiempo de ejecución.

También puede usar pack pragma para controlar el empaquetado de la estructura. Para obtener más información sobre la alineación, vea:

Para establecer esta opción del compilador en el entorno de desarrollo de Visual Studio

  1. Abra el cuadro de diálogo Páginas de propiedades del proyecto. Para más información, vea Establecimiento del compilador de C++ y de propiedades de compilación en Visual Studio.

  2. Seleccione la página de propiedades Propiedades de configuración>C/C++>Generación de código.

  3. Modifique la propiedad Alineación de miembros de struct.

Para establecer esta opción del compilador mediante programación

Consulte también

Opciones del compilador de MSVC
Sintaxis de la línea de comandos del compilador MSVC