假设我定义了以下结构:
struct MyData {
int a;
char b;
int c;
byte d;
byte e;
}
我依稀记得读过该结构的大小不仅取决于数据类型,还取决于内存对齐方式。在 32 位 CPU 上,MyData 结构将是 4 字节 + 1 字节 + 4 字节 + 1 字节 + 1 字节 = 11 字节。这是我的问题,内存对齐是否会增加结构的大小:4 字节 + 1 字节(+3 字节填充)+ 4 字节 + 1 字节(+3 字节填充)+ 1 字节(+3 字节填充)= 20 字节。
这是错的吗?我错过了什么吗?这是特定于语言的东西吗?我可以打包结构吗?如果是这样,有什么优点和缺点?
谢谢!