Взаимодействие: одинаковы ли настройки выравнивания структуры упаковки для C# и неуправляемого C ++ на данной платформе? - PullRequest
1 голос
/ 07 января 2020

Или мне нужно явно указать выравнивание в каждом, чтобы обеспечить совпадение? Код C# и неуправляемый код C создаются в одной и той же системе (VS IDE или MSBuild).

1 Ответ

1 голос
/ 07 января 2020

Размеры упаковки по умолчанию для C# и C.

В статье C говорится, что упаковка по умолчанию регулируется параметром переключения компилятора /Zp[n], который по умолчанию равен 8.

В статье C# говорится, что поле Pack управляет выравниванием полей типа в памяти. По умолчанию значение равно 0, что указывает размер упаковки по умолчанию для «текущей платформы», что бы это ни значило (прочитайте статью; рассказ там немного сложнее, чем версия C / C ++).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...