让地址4字节对齐的办法

假设p是一个指针址或者是一个变量,通过以下代码实现p是4的整数倍,如果是地址,则实现4字节对齐

代码1:

while (p & 0x03)
{
   p++;
}

如果p是4整数倍,条件为0,退出,如果p多1,p最后2位会从01,10,11直到00。

 

代码2: 

(p+0x03)&(~0x03)

如果p是4整数倍,不变,如果不是,加上3,肯定进位,然后最后2位可能有多余,是要减去的,用&(~0x03)做到。

你可能感兴趣的:(让地址4字节对齐的办法)