У меня есть фон C #. Я очень новичок в низкоуровневом языке, таком как C.
В C # память struct
распределяется компилятором по умолчанию. Компилятор может неупорядоченно изменять порядок полей данных или добавлять дополнительные биты между полями. Поэтому мне пришлось указать какой-то специальный атрибут, чтобы переопределить это поведение для точного макета.
AFAIK, C не переупорядочивает и не выравнивает структуру памяти struct
по умолчанию. Однако я слышал, что есть небольшое исключение, которое очень трудно найти.
Каково поведение C в плане памяти? Что следует переупорядочить / выровнять, а не?