разных размеров, и комментариями к каждой переменной, это общепризнанный стандарт, или только особенность с/с++ разработчиков?
Поясни вопрос.
Боюсь, вам предстоит сформулировать более развёрнутый вопрос и желательно с примером Если я верно понял ход мысли – нет, это не общепринятый способ сериализации в том числе и в C++
Это точно НЕ общепризнанный стандарт.
я хотел скинуть картинку, но написало типа нельзя
Речь же даже не о сериализации, а об описании формата
Слабоумие и отвага
Почему же ? Вполне приемлимо
Вы можете код скидывать в наиболее родном для него формате – текстовом, на какой-нибудь pastebin
Ну читать из файла ещё такое. А вот записывать структуры
struct eocdr { uint16_t disk_nbr; /* Number of this disk. */ uint16_t cd_start_disk; /* Nbr. of disk with start of the CD. */ uint16_t disk_cd_entries; /* Nbr. of CD entries on this disk. */ uint16_t cd_entries; /* Nbr. of Central Directory entries. */ uint32_t cd_size; /* Central Directory size in bytes. */ uint32_t cd_offset; /* Central Directory file offset. */ uint16_t comment_len; /* Archive comment length. */ const uint8_t *comment; /* Archive comment. */ }; то есть часто бывает что открываю любую статью про внутреннее устройство форматов файлов, и там что то вроде этого. даже если сам дальнейший код написан на другом языке
Мне это совсем не очевидно было из вопроса, поэтому попытался предположить
Речь про описание формата или про то, что надо реально записывать/считывать структуру?
Это не стандарт, а просто удобство и логичное использование памяти. Зачем выделять больше, чем надо?
просто описание для примера, что типа - смотрите, читатели, там все вот такое
Такой строки тут не может быть const uint8_t *comment; /* Archive comment. */
Я думаю, это связано с тем, что C может выступать не столько языком, сколько универсальным диалектом, который будет понятен каждому вне зависимости от основного языка UPD: а уж с учётом того, что межязыковое взаимодействие часто подразумевает участие C...
согласен. это не мой код, да и сам я пока новичек в с/с++
Ещё добавлю, что стандартов описания форматов бинарных данных не существует. Ну или если и есть, то мало популярны.
ну ведь в бинарных данных может быть что угодно, это же не одни файлы с блоком инструкций
А что, что ещё может быть в бинарных данных?
Обычно это псевдокод, призванный продемонстрировать идею с использованием родного, как это предполагается, для многих синтаксиса. Идиосинкразии досыпаются отдельными авторами по вкусу (можно, например, встретить uint32_t size; some_t data[size]; или даже применение шаблоноподобных конструкций). Кроме того, подобный синтаксис описания бинарного формата применяется здесь (продукт коммерческий, но все еще часто используемый). Edit: На всякий случай добавлю, что решений по бинарному парсингу для крестов существует несколько. С подборкой можно ознакомиться как минимум здесь.
Обсуждают сегодня