我理解数据结构对齐的理论并使用该理论来实现序列化。 但是,我很难开始真正的代码。 有人能给我一个简单的例子来说明这是如何工作的吗?
让我们说:
Class A {
private:
int a;
char b;
double c;
char d;
char e;
public:
void serialize(char * str);
};
如何实现serialize方法来存储对齐的数据A?我应该重新排序数据结构并填充它吗?或...
答案 0 :(得分:1)
对齐和序列化是两个正交的方面。
前者涉及数据结构的内存中表示,而后者涉及其顺序形式的等效表示。换句话说,一旦数据结构被序列化为字节流,对齐就不再相关。类似地,当引用序列化字节流时,对齐的概念没有意义。
那就是说,你应该分别解决每个问题,而不是试图找到一个联合解决方案。