-
- С помощью union выровняйте указатели до 32 бит. Но это извращение какое-то. Хост ведь внезапно и 64битным может оказаться. - =AlexD=(03.03.2022 11:28)
- Опять же по аналогии с файлами, если нужны вложенные структуры или
массивы, то их положение указывается смещением (обычно переменная
называется xxxOffset) от начала файла или от головной структуры или
от пакета. Да, аналог указателя. - Costic(01.03.2022 19:43)
- Смещением в пределах некоей однородной структуры, верно? А у меня
там по факту кучка разнородных структур разного размера. Проще
показать, чем на словах объяснять. Вот общее объявление рабочих
структур данных: Argon(809 знак., 01.03.2022 20:09)
- Извините, что не сразу ответил. Украинская тема отвлекает. Итак, не
совсем понятно - одинаковый размер структур или разный. Потому что
в коде я вижу фиксированный размер. Если структурки небольшие, то я
бы сделал _все_ одинакового размера (по максимальной). Если нужен
разный размер, то надо иметь возможность вычислять размер структур
и данных, их положение в потоке относительно исходной точки -
начала файла, пакета, заголовка (header). Возможно, потом у вас
идут структуры, Costic(355 знак., 02.03.2022 21:55)
- По факту у меня вложенные структуры, самые крайние из них имеют разный размер, который вычисляется на этапе компиляции и вставляется сюда: const uint16_t size; - Argon(03.03.2022 11:25)
- Перечитал исходный пост. Делайте классы с наследованием. Базовый
класс с сериализацией (чисто виртуальная функция, например, virtual
bool write(my_stream &)=0;) и всеми методами необходимыми. Для
каждого модуля делаете свой класс и метод записи для него. Надо
подумать над оператором копирования и конструкторами. Всё это дело
в контейнер с оператором []. Какой контейнер - сложно сразу
сказать. У стандартных аллокаторы с динамической памятью и "хвост"
зависимостей. Costic(53 знак., 02.03.2022 22:05)
- Спасибо, буду пробовать, может голова начнет работать. - Argon(03.03.2022 11:25)
- Извините, что не сразу ответил. Украинская тема отвлекает. Итак, не
совсем понятно - одинаковый размер структур или разный. Потому что
в коде я вижу фиксированный размер. Если структурки небольшие, то я
бы сделал _все_ одинакового размера (по максимальной). Если нужен
разный размер, то надо иметь возможность вычислять размер структур
и данных, их положение в потоке относительно исходной точки -
начала файла, пакета, заголовка (header). Возможно, потом у вас
идут структуры, Costic(355 знак., 02.03.2022 21:55)
- Смещением в пределах некоей однородной структуры, верно? А у меня
там по факту кучка разнородных структур разного размера. Проще
показать, чем на словах объяснять. Вот общее объявление рабочих
структур данных: Argon(809 знак., 01.03.2022 20:09)
- Делай с укаэателем. - Cкpипaч(01.03.2022 17:40)