<分区>
Possible Duplicate:
How do I find the size of a struct?
Struct varies in memory size?
我正在使用以下结构进行网络通信,它在两者之间创建了很多不必要的字节。
它给出的大小与预期的 8 字节不同。
struct HttpPacket {
unsigned char x1;
union {
struct {
unsigned char len;
unsigned short host;
unsigned char content[4];
} packet;
unsigned char bytes[7];
unsigned long num;
}
即使我要从 union 中删除一个字段,以下也会给出不同的大小
struct HttpPacket {
unsigned char x1;
union {
struct {
unsigned char len;
unsigned short host;
unsigned char content[4];
} packet;
unsigned long num;
}
另外,一个更清楚的例子
struct {
unsigned char len;
unsigned short host;
unsigned char content[4];
} packet;
它给出的大小为 8,而不是 7。 我又添加了一个字段,它仍然给出相同的大小
struct {
unsigned char EXTRAADDEDFIELD;
unsigned char len;
unsigned short host;
unsigned char content[4];
} packet;
有人可以帮忙解决这个问题吗?
更新:我需要在传输数据包时保留格式,所以我想跳过这些填充