Буфферы протокола Google совместимы с бинарными связями с структурами C? Я имею в виду, могу ли я читать сериализованные файлы из C direct в struct без десериализации? Или protobuf-c - это единственное решение?двоичная совместимость с C
2
A
ответ
6
В зависимости от выравнивания, согласованности и упаковки конструкций на вашей платформе это может работать или не работать. Возможно, вам повезет с вашей конкретной целью, но в целом вы должны использовать правильные процедуры сериализации/десериализации.
1
Вы не должны читать/писать C-структуры (а также любые встроенные типы, превышающие char
) из/в последовательные интерфейсы (например, файлы, трубы или сокеты) из-за проблем с заполнением и контентом. Только сериализуйте их по полю и заботитесь о контенте.
Нет проблем с контентом, потому что NumPy dtype явно указывает порядок бит –
К сожалению, я написал о NumPy ... Да, вы правы, у меня, вероятно, будут проблемы с битовыми заказами с использованием буферов протокола Google –