与C的二进制兼容性

时间:2010-11-09 11:31:11

标签: c protocol-buffers

Google协议缓冲区是否与C结构二进制兼容? 我的意思是我可以从C直接读取序列化文件到结构而不反序列化? 或protobuf-c 是唯一的解决方案吗?

2 个答案:

答案 0 :(得分:6)

根据平台上结构的对齐,字节顺序和包装,这可能有效,也可能无效。你可能对你的特定目标很幸运,但一般来说你应该使用正确的序列化/反序列化程序。

答案 1 :(得分:1)

由于填充和字节序问题,您不应该从顺序接口(如文件,管道或套接字)读取/写入C结构(以及大于char的任何内置类型)。只能逐个序列化它们并处理字节序。