size = (size+7)&~7; /* unsigned long align the size */什么意思??
void *mmalloc(unsigned long size){
......
size = (size+7)&~7; /* unsigned long align the size */
......
}
望高手教导 8bytes align 就是x=((x+7)/8)*8的等效优化算式
先除8再乘8,就形成了按8对齐,+7是为了将“舍尾”变成“进位” 0 -> 0
1 -> 8
2 -> 8
3 -> 8
4 -> 8
5 -> 8
6 -> 8
7 -> 8
8 -> 8
9 -> 16
10 -> 16
11 -> 16
12 -> 16
13 -> 16
14 -> 16
15 -> 16
16 -> 16
17 -> 24
... 回复【1楼】again
-----------------------------------------------------------------------
为什么要这样处理下,不处理,就不行吗?? 回复【2楼】gale
-----------------------------------------------------------------------
什么意思啊??望详细说明下。 楼主的头像好妖媚…… mark 回复【5楼】ddlovepp
-----------------------------------------------------------------------
对齐是为了加快内存访问速度,便于操作系统管理 资料在此~~~
http://www.feifanbbs.com/frame.php?frameon=yes&referer=http://www.feifanbbs.com/viewthread.php%3Ftid%3D882 回复【9楼】lixivip
-----------------------------------------------------------------------
资料看不懂啊!!!本人菜鸟啊 大侠们来抛砖引玉啊。。。。
页:
[1]