我在 C 中有以下嵌套结构。(64 位)
typedef struct {
int a;
int b;
int c;
struct {
int ab;
long bc;
}
int d;
} Test;
I see that,
a = 4 bytes
b = 4 bytes
c = 4 bytes
padding1 = 4 bytes
inner structure = 16 bytes ( 4 bytes for ab, 4 bytes padding, 8 bytes for bc)
d = 4 bytes
padding2 = 4 bytes
sizeof(Test) 返回 40 个字节。
我的问题:
padding1 -> 为什么这是 4 个字节?这是因为内部结构本身应该对齐吗?(另外,它是否与 8 字节(长)或 16 字节(内部大小)边界对齐。?)
padding2 -> 这 4 字节填充是因为结构内部完成的最大对齐(即 8)吗?
谢谢,