在工作工作中,有内存对齐的访问需求:比如有时需要对函数传进来的参数的size大小做4字节对齐,这个时候需要对size的大小做判断,并且操作。
#ifndef XXX_ALIGN_DOWN
#define XXX_ALIGN_DOWN(size, align) ((size) & ~((align)-1))
#endif /* !XX_ALIGN_DOWN */
#ifndef XXX_ALIGN_SIZE
#define XXX_ALIGN_SIZE 4
#endif /* !XXX_ALIGN_SIZE */
int test_align(int size)
{
return XXX_ALIGN_DOWN(size, XXX_ALIGN_SIZE);
}
说明:
1,以上代码中的“XXX”可以更具实际情况换成自己的名字。
2,想换成8字节对齐或者其他字节对齐的,可以直接修改XXX_ALIGN_SIZE宏定义即可。
本文记录了一种字节向下对齐的方法,供参考。