Konflikty z kompilatorem x86
Typy danych, które są większe niż 4 bajty nie są automatycznie wyrównane na stosie, gdy używasz kompilator x 86 do kompilowania aplikacji.Ponieważ architektura dla kompilator x 86 jest stos wyrównanego 4-bajtowy, coś większego niż 4 bajty, na przykład, liczba całkowita 64-bitowych, nie może automatycznie wyrównany, do 8-bajtowego adresu.
Praca z danymi odwołań do niewyrównanych ma dwa skutki.
Może to trwać dłużej dostępu unaligned lokalizacje niż trzeba, by dostęp lokalizacje wyrównanego do.
Nie można użyć odwołań do niewyrównanych lokalizacje w operacjach blokujących.
Jeśli wymagasz więcej ścisłego dopasowania, należy użyć __declspec(align(N)) on your variable declarations.Powoduje to, że kompilator dynamicznie wyrównać stosu do spełnienia specyfikacji.Dynamicznie dostosowującym stosu w czasie wykonywania może jednak powodować wolniejsze wykonywanie naszej aplikacji.