数据结构对齐以在C ++中实现序列化

时间:2012-04-08 19:13:13

标签: c++ serialization memory-alignment

我理解数据结构对齐的理论并使用该理论来实现序列化。 但是,我很难开始真正的代码。 有人能给我一个简单的例子来说明这是如何工作的吗?

让我们说:

 Class A {
  private:
     int a;
     char b;
     double c;
     char d;
     char e;
   public:
     void serialize(char * str);
 };

如何实现serialize方法来存储对齐的数据A?我应该重新排序数据结构并填充它吗?或...

1 个答案:

答案 0 :(得分:1)

对齐和序列化是两个正交的方面。

前者涉及数据结构的内存中表示,而后者涉及其顺序形式的等效表示。换句话说,一旦数据结构被序列化为字节流,对齐就不再相关。类似地,当引用序列化字节流时,对齐的概念没有意义。

那就是说,你应该分别解决每个问题,而不是试图找到一个联合解决方案。