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