永发信息网

为什么下面这个结构体s所占的字节数是8,然而如果把a和b的位置交换一下,所占的字节数就变成12了?

答案:2  悬赏:40  手机版
解决时间 2021-03-18 07:00
  • 提问者网友:抽煙菂渘情少年
  • 2021-03-17 18:31
为什么下面这个结构体s所占的字节数是8,然而如果把a和b的位置交换一下,所占的字节数就变成12了?vc6.0中:
struct s
{
int a;
char b;
short c
}
最佳答案
  • 五星知识达人网友:舍身薄凉客
  • 2021-03-17 19:16
原因是:字节对齐。32位系统是4字节对齐。字节对齐之后,机器的硬件访问地址的速度会得到极大提高,所以,一般系统都会做字节对齐。

正常情况下,int占用4字节,char占用1字节,short占用2字节。
实际中,
struct s {
int a;
char b;
short c;
};

而a、b换位置后,
struct s {
char b;
int a;
short c;
};
全部回答
  • 1楼网友:何以畏孤独
  • 2021-03-17 20:53
我。。知。。道 加。。我。。私。。聊
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯