就是有一个细节不知道你们注意过没有看这个结构体
struct
{
char a;
short b;
int c;
};
栈八个字节没错吧?但是你说short是占着2和3字节呢还是三四两个字节呢?
a | b | b |
---|
2和3
a | b | b |
---|
三和四
我们运行代码验证一下吧
#include <stdio.h>
struct st
{
char a;
short b;
int c;
};
int main()
{
struct st st1={1,1,2};
printf("0x%hx,0x%hx",&st1.b,&st1);
return 0;
}
相差两个字节第二种,