c語言之對齊函數(shù)代碼示例
#define ALIGNMENT 8
// 內(nèi)存對齊:將size向上對齊到最近的ALIGNMENT倍數(shù)
static size_t align_size(size_t size) {
if(size==0)
return ALIGNMENT;
// 對齊公式:(size + 對齊數(shù) - 1) & ~(對齊數(shù) - 1)
return (size + ALIGNMENT - 1) & ~(ALIGNMENT - 1);
}
// 計算內(nèi)存塊對應的桶索引(從0開始)
static size_t get_bucket_index(size_t align_size)
{
// 比如8字節(jié)對應索引0,16字節(jié)對應索引1..
return (align_size / ALIGNMENT) - 1;
}

浙公網(wǎng)安備 33010602011771號