int main()
{
struct books
{
char name;
float price;
}b1;
printf("%u %u",&b1.name,&b1.price);
}
当我运行上面的代码时,我得到以下输出: -
2686728 2686732
由于sizeof(char)
为1,为什么上述两个地址的差异为4?
答案 0 :(得分:1)
填充。编译器在name
和price
字段之间插入3个字节的填充,因此访问price
不会遇到对齐问题。