在偏低層開發(fā)時(shí)匹表,經(jīng)常會(huì)用到4字節(jié)冀瓦、8字節(jié)對(duì)齊的內(nèi)存操作缚窿;或者是地址為4K對(duì)齊等等环础,可以使用下面接口來實(shí)現(xiàn)
unsigned long align(unsigned long addr, unsigned long align)
{
return (addr + align - 1) & ~(align - 1);
}
此接口返回addr
以align
字節(jié)對(duì)齊后的結(jié)果
上面接口返回的是addr之后的第一個(gè)以align
對(duì)齊的結(jié)果囚似,如果想找當(dāng)前addr所在的以align
對(duì)齊的結(jié)果,則需要下面的接口
unsigned long align(unsigned long addr, unsigned long align)
{
return addr - (addr % align);
}