#define _INTSIZEOF(n)
来源:互联网 发布:全球社交网络名人排行 编辑:程序博客网 时间:2024/05/27 12:21
将某个数按int内存对齐:
#define _INTSIZEOF(n) ( (sizeof(n) + sizeof(int) - 1)& ~(sizeof(int) - 1) )
数学解释:
对于两个正整数 x, n 总存在整数 q, r 使得
x = nq + r, 其中
q, r 是唯一确定的。q = [x/n], r = x - n[x/n]. 这个是带余除法的一个简单形式。在 c 语言中, q, r容易计算出来: q = x/n, r = x % n.
所谓把 x 按 n 对齐指的是:若 r=0, 取 qn, 若 r>0, 取 (q+1)n. 这也相当于把x 表示为:
x = nq + r', 其中 -n < r'<=0
nq 是我们所求。关键是如何用 c语言计算它。由于我们能处理标准的带余除法,所以可以把这个式子转换成一个标准的带余除法,然后加以处理:
x+n = qn + (n+r'),其中0<n+r'<=n
x+n-1 = qn + (n+r'-1), 其中 0<= n+r'-1<n
所以 qn = [(x+n-1)/n]n. 用 c 语言计算就是:
((x+n-1)/n)*n
若 n 是 2 的方幂, 比如 2^m,则除为右移 m 位,乘为左移 m 位。所以把 x+n-1 的最低 m 个二进制位清0就可以了。得到:
(x+n-1) & (~(n-1))
0 0
- #define _INTSIZEOF(n)
- _INTSIZEOF(n)
- _INTSIZEOF(n)
- _INTSIZEOF(n)
- _INTSIZEOF(n)
- _INTSIZEOF(n)
- 内存对齐#define _INTSIZEOF(n) ((sizeof(n)+sizeof(int)-1)&~(sizeof(int) - 1) )
- 内存对齐#define _INTSIZEOF(n) ((sizeof(n)+sizeof(int)-1)&~(sizeof(int) - 1) )
- #define _INTSIZEOF(n) ((sizeof(n)+sizeof(int)-1)&~(sizeof(int) - 1) ) 的解释
- 内存对齐#define _INTSIZEOF(n) ((sizeof(n)+sizeof(int)-1)&~(sizeof(int) - 1) ) .
- 内存对齐#define _INTSIZEOF(n) ((sizeof(n)+sizeof(int)-1)&~(sizeof(int) - 1) )
- 内存对齐 _INTSIZEOF(n)
- _INTSIZEOF(n) 原理
- C语言中的宏 #define _INTSIZEOF(n) 与 可变参数函数
- _INTSIZEOF
- #define A (* (volatile unsigned …
- c语言中可变参数中_INTSIZEOF(n)宏的解释
- WinJS.Class.define function
- (转)利用sourceinsight宏(Quicker.…
- GSM、CDMA、GPRS和WAP
- drools -Rete算法
- C++静态成员函数小结(转)
- 软件框架设计
- #define _INTSIZEOF(n)
- (转)MTK之Flash篇一
- 硬盘的扇面、磁道、扇区
- Source Insight阅读PHP项目的代码…
- 关于Nginx的一些优化(突破十万并发)
- 鸟哥的Linux私房菜:基础学习篇(…
- (转)关于JAVA中的Garbage Collecti…
- (转)Ubuntu中快速启动终端窗口
- ubuntu root用户密码及登录、用户…