【发布时间】:2012-04-08 19:13:13
【问题描述】:
我了解数据结构对齐的理论并使用该理论来实现序列化。 但是,我很难开始使用真正的代码。 谁能给我一个简单的例子来说明这是如何工作的?
假设:
Class A {
private:
int a;
char b;
double c;
char d;
char e;
public:
void serialize(char * str);
};
如何实现序列化方法来存储对齐的数据A?我应该重新排序数据结构并填充它吗?或者...
【问题讨论】:
-
内存数据对齐和序列化是两个正交的方面。事实上,一旦数据被序列化为字节流,对齐就不再是问题了。
-
@MatthiasVallentin 请在有人提议使用
memcpy或一些类似功能之前将您的评论转化为答案。 -
与其自己进行序列化,不如检查 Google 协议缓冲区:code.google.com/p/protobuf ...它将为您处理很多细节,“正确的方式”。
-
你不需要做任何事情来获得数据结构对齐。编译器会为你做这件事。你的问题还不清楚。
标签: c++ serialization memory-alignment