2

每当我需要定义文件结构时,我都会使用特定于编译器的命令(如#pragma pack(1))来确保我可以安全地读取和写入此文件并且无需担心填充问题。

但是,还有其他方法可以达到相同的目标吗?我不需要反序列化复杂对象,只需 POD 类型。

4

2 回答 2

1

定义一个总是很好地映射到类型的内存表示的跨平台二进制格式是不可能的。

定义跨平台文件格式的两个选项是:

  1. 使用文本
  2. 根据您最喜欢的跨平台序列化库可以提供的内容定义二进制格式,并使用该库在其内部和外部表示之间转换文件内容。
于 2013-01-07T16:37:14.090 回答
0

Boost Serialization Library可能是一种选择,如果您希望快速解决它并且不费吹灰之力。

于 2013-01-07T16:30:32.417 回答