Информация об изменениях

Сообщение Re[3]: [C] как разместить структуру внутри буфера от 27.02.2019 11:18

Изменено 27.02.2019 12:11 Sergey_BG

Re[3]: [C] как разместить структуру внутри буфера
Здравствуйте, B0FEE664, Вы писали:
BFE>разве?

Я прочитал что такое alignof и увидел, что оно возвращает что задаёт alignas. А последнее это аналог pragma pack. Т.е. Для структуры он задаёт выравнивание полей по некоторому размеру.
Т.е. размер струтуры от этого меняется, так как меняется положение полей внутри структуры. И для массива, вам достаточно выравнять положение первого элемента массива. sizeof вернёт размер кратный выравниванию. И следующая структура будет тоже выравнена.
Re[3]: [C] как разместить структуру внутри буфера
Здравствуйте, B0FEE664, Вы писали:
BFE>разве?

Я прочитал что такое alignof и увидел, что оно возвращает что задаёт alignas. А последнее это аналог pragma pack. Т.е. Для структуры он задаёт выравнивание полей по некоторому размеру.
Т.е. размер струтуры от этого меняется, так как меняется положение полей внутри структуры. И для массива одинаковых структур, вам достаточно выравнять положение первого элемента массива. sizeof вернёт размер кратный выравниванию. И следующая структура будет тоже выравнена. Для разных структур, надо выравнивать каждую структуру.