4字节对齐下,这个结构体占多少字节呢,详解
答案:4 悬赏:30 手机版
解决时间 2021-03-24 10:11
- 提问者网友:未信
- 2021-03-23 12:28
4字节对齐下,这个结构体占多少字节呢,详解
最佳答案
- 五星知识达人网友:蕴藏春秋
- 2021-03-23 13:17
struct S1
{
int a;
float c;
char d;
char g;
unsigned short b:4;
unsigned short e:13;
unsigned short f:2;
};
这样
g 和 d相邻
b 和 g相邻
e 和 b 之间空出了1个字节
最终是 16字节
{
int a;
float c;
char d;
char g;
unsigned short b:4;
unsigned short e:13;
unsigned short f:2;
};
这样
g 和 d相邻
b 和 g相邻
e 和 b 之间空出了1个字节
最终是 16字节
全部回答
- 1楼网友:撞了怀
- 2021-03-23 16:39
struct S
{
int a;
float c;
unsigned short b:4;
unsigned short e:13;
unsigned short f:2;
char g;
char d;
};
{
int a;
float c;
unsigned short b:4;
unsigned short e:13;
unsigned short f:2;
char g;
char d;
};
- 2楼网友:往事埋风中
- 2021-03-23 15:21
struct S
{
int a;//4
unsigned short b;//2
float c;//8
char d;//1
unsigned short e;//2
unsigned short f;//2
char g;//1
};
在VS2008中
使用printf("%d\n",sizeof(struct S));得到的结果是20
看来和书写的顺序没有关系啊。。。。
{
int a;//4
unsigned short b;//2
float c;//8
char d;//1
unsigned short e;//2
unsigned short f;//2
char g;//1
};
在VS2008中
使用printf("%d\n",sizeof(struct S));得到的结果是20
看来和书写的顺序没有关系啊。。。。
- 3楼网友:玩家
- 2021-03-23 14:28
这个没错啊,就是20,算出来的后都要+4
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯