内部结构的结构类型填充

时间:2019-02-15 05:22:32

标签: c struct padding

当我尝试在其中放入另一个struct_a类型的struct数组时,我不明白struct_b的大小。我知道struct_a的大小是16个字节。但是当涉及到struct_b时,我假设应该有2 * 16 + 160 = 192字节,但实际上是184字节。你能解释一下吗?谢谢!

struct struct_a{
    char id[5];
    float f;
    int n;
};

struct struct_b{
    char name[24];
    struct struct_a array[10];
};


1 个答案:

答案 0 :(得分:1)

因为namechar类型。因此它是1个字节,表示1 * 24 = 24 bytes,sizeof struct_a是16个字节。因此,16*10 = 160

这就是为什么sizeof struct_b是184个字节的原因。

24 + 160 = 184 bytes.
相关问题