двоичная совместимость с C - PullRequest
2 голосов
/ 09 ноября 2010

Буферы протокола Google совместимы в двоичном формате со структурами C?Я имею в виду, можно ли читать сериализованные файлы из C напрямую в структуры без десериализации?Или protobuf-c является единственным решением?

Ответы [ 2 ]

6 голосов
/ 09 ноября 2010

В зависимости от выравнивания, порядкового номера и упаковки конструкций на вашей платформе это может работать, а может и не работать. Вам может повезти с вашей конкретной целью, но в целом вы должны использовать правильные процедуры сериализации / десериализации.

1 голос
/ 09 ноября 2010

Вы никогда не должны читать / записывать структуры C (а также любые встроенные типы больше char) из / в последовательные интерфейсы (например, файлы, каналы или сокеты) из-за проблем заполнения и порядка байтов.Только сериализуйте их по полю и позаботьтесь о порядке байтов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...