/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
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.
Selecione a página de propriedades Propriedades da Configuração>C/C++>Geração de Código.
Modifique a propriedade Alinhamento de membro do struct.
Para definir essa opção do compilador via programação
- Consulte StructMemberAlignment.
Confira também
Opções do compilador MSVC
Sintaxe da linha de comando do compilador MSVC