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。 有人可以解释一下吗?