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.