/Zp (Выравнивание члена структуры)
Управляет упаковкой элементов структуры в память и задает одну и ту же упаковку для всех структур в модуле.
Синтаксис
/Zp
[1
16
|||8
|2
4
]
Замечания
Параметр /ZpN
указывает компилятору, где должен храниться каждый элемент структуры. Компилятор сохраняет элементы после первого элемента по границе, которая представляет собой меньшее из двух значений: размер типа элемента и N байт.
Возможные значения упаковки описаны в следующей таблице:
Аргумент /Zp | Действие |
---|---|
1 | Упаковывает структуры по 1-байтовым границам. Эквивалентно /Zp . |
2 | Упаковывает структуры по 2-байтовым границам. |
4 | Упаковывает структуры по 4-байтовым границам. |
8 | Упаковывает структуры по 8-байтовым границам (используется по умолчанию для x86, ARM и ARM64). |
16 | Пакеты структур на 16-байтовых границах (по умолчанию для x64 и ARM64EC). |
Не используйте этот параметр, если не заданы конкретные требования к выравниванию.
Предупреждение
В заголовочных файлах C/C++ из Windows SDK предполагается, что используется принятое на платформе выравнивание по умолчанию. Не изменяйте значение параметра по умолчанию при включении заголовков Windows SDK с помощью /Zp
в командной строке или с помощью #pragma pack
. В противном случае во время выполнения приложения может произойти повреждение памяти.
Для управления упаковкой структур также можно использовать pack
pragma. Дополнительные сведения о выравнивании см. в разделах:
Установка данного параметра компилятора в среде разработки Visual Studio
Откройте диалоговое окно Страницы свойств проекта. Подробнее см. в статье Настройка компилятора C++ и свойства сборки в Visual Studio.
Перейдите на страницу свойств Свойства конфигурации>C/C++>Создание кода.
Измените свойство Выравнивание элемента структуры.
Установка данного параметра компилятора программным способом
- См. раздел StructMemberAlignment.
См. также
Параметры компилятора MSVC
Синтаксис командной строки компилятора MSVC