4字节对齐

  • Post author:
  • Post category:其他


分散加载文件


; Macro to align val on the multiple of 4 equal or nearest higher

#define ALIGN4_HI(val) (((val)+3) AND (~3))


https://zhidao.baidu.com/question/448133299.html

英语单词align提供了一种思路,与“对齐”相差不远。
下面验证一下:
val为0时,结果是0;
val为1时,结果是4;
val为2时,结果是4;
val为3时,结果是4;
val为4时,结果是4;
val为5时,结果是8;
val为6时,结果是8;
val为7时,结果是8;
val为8时,结果是8;
val为9时,结果是12;
val为10时,结果是12;
。。。
可见该函数是按4对齐,或者称之为 对4 上取模(貌似叫这个,记不清了)



猜测是对齐操作;
如val 指向的地址是0x0000 0003
则((unsigned int)val + 3) = 0x0000 0006;
0x0000 0006 & ~3 = 0x0000 0006 & 0xffff fffc = 0x0000 0004
即实现按4对齐。



版权声明:本文为weixin_42381351原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。