首页 > 代码库 > 【转】内存地址对齐运算
【转】内存地址对齐运算
做地址对齐的代码:
#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
【转】内存地址对齐运算
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。