/Zp (alinhamento de membro do Struct)

Controla como os membros de uma estrutura são empacotados na memória e especifica o mesmo empacotamento para todas as estruturas de um módulo.

Sintaxe

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

Comentários

A opção /ZpN informa ao compilador o local para armazenar cada membro da estrutura. O compilador armazena membros após o primeiro em um limite que é o menor que o tamanho do tipo de membro ou que um limite de N bytes.

Os valores de pacote disponíveis estão descritos na tabela a seguir:

Argumento /Zp Efeito
1 Empacota estruturas em limites de 1 byte. Mesmo que /Zp.
2 Empacota estruturas em limites de 2 bytes.
4 Empacota estruturas em limites de 4 bytes.
8 Empacota estruturas em limites de 8 bytes (padrão para x86, ARM e ARM64).
16 Empacota estruturas em limites de 16 bytes (padrão para x64 e ARM64EC).

Não use essa opção, a menos que você tenha requisitos específicos de alinhamento.

Aviso

Os cabeçalhos do C/C++ no SDK do Windows pressupõem que o alinhamento padrão da plataforma seja usado. Não altere a configuração do padrão quando você incluir os cabeçalhos do SDK do Windows, seja usando /Zp na linha de comando ou usando #pragma pack. Caso contrário, seu aplicativo poderá causar corrupção de memória em runtime.

Você também pode usar o pragma pack para controlar o empacotamento da estrutura. Para obter mais informações sobre alinhamento, consulte:

Para definir esta opção do compilador no ambiente de desenvolvimento do Visual Studio

  1. Abra a caixa de diálogo Páginas de Propriedades do projeto. Para obter detalhes, confira Definir as propriedades de build e do compilador do C++ no Visual Studio.

  2. Selecione a página de propriedades Propriedades da Configuração>C/C++>Geração de Código.

  3. Modifique a propriedade Alinhamento de membro do struct.

Para definir essa opção do compilador via programação

Confira também

Opções do compilador MSVC
Sintaxe da linha de comando do compilador MSVC