起始地址偏移量是什么,怎么看?
计算空间大小时,那还得考虑对齐,但我不知道,结构的起始地址偏移量怎么看,比如先定义一个char再定义一个int再定义一个double最后定义一个char在32位系统上运行,为何大小是24,给分一下。。
请赐教!!!
起始地址偏移量是什么,怎么看? 计算空间大小时,那还得考虑对齐,但我不知道,结构的起始地址偏移量怎
答案:2 悬赏:30 手机版
解决时间 2021-02-13 19:11
- 提问者网友:战魂
- 2021-02-13 05:14
最佳答案
- 五星知识达人网友:由着我着迷
- 2021-02-13 06:14
个操作系统都有自己的默认内存对齐系数
内存对齐可以用一句话来概括:
“数据项只能存储在地址是数据项大小的整数倍的内存位置上”
例如int类型占用4个字节,地址只能在0,4,8等位置上。
同样的:double类型只能在 0 8 16等位置上。
char 0
int 8
double 16
char 24
size=24
struct xx{
char b; 0
char d; 1
int a; 4
double c; 16
};
size=16
内存对齐可以用一句话来概括:
“数据项只能存储在地址是数据项大小的整数倍的内存位置上”
例如int类型占用4个字节,地址只能在0,4,8等位置上。
同样的:double类型只能在 0 8 16等位置上。
char 0
int 8
double 16
char 24
size=24
struct xx{
char b; 0
char d; 1
int a; 4
double c; 16
};
size=16
全部回答
- 1楼网友:归鹤鸣
- 2021-02-13 07:46
同问。。。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯