首页
社区
课程
招聘
[求助]一个struct大小的问题
发表于: 2013-1-25 09:45 4645

[求助]一个struct大小的问题

2013-1-25 09:45
4645
struct bs
{
        int a:1;
        int b:1;
        int c:1;
        double d;
};
bs aa;
sizeof(aa) = 16;

struct as
{
        int a:1;
        int b:1;
        int c:1;
        //double d;
};
as aa;
sizeof(aa) = 4;

这是什么原因呢,是下面的as按照double的大小对齐了吗?

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 2155
活跃值: (29)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
2
bs是按照double的长度对齐了,double是8字节,所以结构体是16字节。

as是按照int对其的,int是4自己,所以结构体是4字节。
2013-1-25 10:31
0
雪    币: 304
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
3
struct 对齐以其成员变量中最宽的数据类型作为标准。
as,bs中,a,b,c都为位域,所以as = 4 字节
bs中,d占8个字节,以8字节对齐,8+8=16
2013-1-25 13:19
0
游客
登录 | 注册 方可回帖
返回
//