#define _INTSIZEOF(n) (sizeof(n)+sizeof(int)-1)&~(sizeof(int)-1)
该宏实现内存对齐 使得_INTSIZEOF(n)返回的一定是int的倍数 且sizeof(n)等于sizeof(int)时,该宏返回值为sizeof(n),大于int时向上取整至int倍速
~(sizeof(int)-1) 4倍数的后两位为0 减1后 后两位必全为1 按位取反后保证&运算时 将前操作数转换为4的倍数
(sizeof(n)+sizeof(int)-1)中-1使当sizeof(n)等于int倍数时 不需要再向上取整 直接取该值即可
非常巧妙的二进制算法
本文介绍了一个用于内存对齐的宏定义,通过巧妙的二进制算法实现内存地址的向上取整至int类型大小的倍数。具体地,宏通过计算输入参数的大小并结合int类型的大小来确保返回值总是int的倍数。
5765

被折叠的 条评论
为什么被折叠?



