Partilhar via


Conflitos com o compilador x86

Tipos de dados que são mais de 4 bytes não são alinhados automaticamente na pilha quando você usa o compilador x86 para compilar um aplicativo.Porque a arquitetura para o compilador x86 é uma pilha alinhada 4 bytes, tudo maior que 4 bytes, por exemplo, um inteiro de 64 bits, não pode ser automaticamente alinhado a um endereço de byte 8.

Trabalhar com dados unaligned tem duas implicações.

  • Pode ser mais tempo para acessar locais unaligned de que leva para acessar locais alinhados.

  • Os locais Unaligned não podem ser usados em operações bloqueadas.

Se você requer um alinhamento mais restrito, use __declspec(align(N)) on your variable declarations.Isso faz com que o compilador alinhe dinamicamente a pilha para satisfazer suas especificações.No entanto, ajustar dinamicamente a pilha em tempo de execução pode causar uma execução mais lento do seu aplicativo.

Consulte também

Referência

Tipos e armazenamento

align (C++)