码迷,mamicode.com
首页 > 其他好文 > 详细

【转】内存地址对齐运算

时间:2014-11-20 15:04:20      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:blog   http   sp   div   log   代码   bs   html   amp   

做地址对齐的代码:

#define _INTSIZEOF(n) ((sizeof(n)+sizeof(int)-1)&~(sizeof(int) - 1) ) //为了满足需要内存对齐的系统

这段代码做的事情就是,给定一个变量n,算出这个变量对齐到某个字长(整型的字节数)整数倍的字节数。这段代码有些难以理解。那么慢慢分析下吧。

假设有一个地址n,要把n按m对齐,无非就是找到大于等于n且整除m的最小的那个数。

我们定义一个宏函数F,它计算n按m对齐的结果,则按照上段代码的逻辑,F定义为:

#define F(n, m) (n+m-1)&~(m-1)

这段代码如果不用这种按位与来写,其实可以这么写:

#define F(n, m) (n+m-1)/m*m

 

转自:http://www.cnblogs.com/waytofall/p/4109514.html

【转】内存地址对齐运算

标签:blog   http   sp   div   log   代码   bs   html   amp   

原文地址:http://www.cnblogs.com/MerlinJ/p/4110451.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!