我想知道下面这个程序的行为,因为填充工作基于C编程中的相邻数据类型。
#include <stdio.h>
struct abc{
char a1;
int a2;
}X;
struct efg
{
char b1;
double b2;
}Y;
int main()
{
printf("Size of X = %d\n",sizeof(X));
printf("Size of Y = %d\n",sizeof(Y));
return 0;
}
节目输出
root@root:~$./mem
Size of X = 8
Size of Y = 16
在结构abc中填充3个字节,而在结构efg中填充7个字节。
这是填充设计的吗?