Конфликты с компилятором x86
Типы данных, размер которых превышает 4 байта, не выравниваются в стеке автоматически при компиляции приложения с помощью компилятора x86.Поскольку архитектура компилятора x86 представляет собой выровненный 4-байтовый стек, что-либо большее, чем 4 байта, например, 64-разрядное целое число, не может автоматически выравниваться по 8-байтовому адресу.
Работа с данными без выравнивания имеет два ограничения.
Доступ к невыровненным расположениям может занимать слишком много времени по сравнению с доступом к выровненным расположениям.
Невыровненные расположения не могут использоваться в блокируемых операциях.
Если требуется более строгое выравнивание, используйте __declspec(align(N)) on your variable declarations.Это заставляет компилятор динамически выравнивать стек в соответствии с требованиями.Тем не менее динамическая настройка стека во время выполнения может привести к замедлению выполнения приложения.