关于包装结构的大小

时间:2018-05-20 07:14:46

标签: c struct

typedef struct abc
{
    double a;
    int b;
    char c;
    int d;


}__attribute__((__packed__))abc_t;

int main()
{
    //To do place code
    abc_t tmp;
    printf("The size is %d\n",sizeof(tmp));
    return 0;
}

由于此结构的填充被禁用,我假设结构的大小将是结构变量的大小的总和,即 8(d的大小)+4(b的大小)+ 1(c的大小)+4(d的大小)等于17但是当我运行这个程序时,我得到的结果是20。 有人可以解释一下吗?

0 个答案:

没有答案