CPU一次性能读取数据的二进制位数称为字长,也就是我们通常所说的32位系统(字长4个字节)、64位系统(字长8个字节)的由来。8字节对齐,就是指变量的起始地址是8的倍数。
假设使用手动对齐长度可以使用一下公式计算申请内存大小:
//来源于redis字节对齐
size_t alloc_size(size_t n)
{
if(n & sizeof(size_t) - 1) //判断n的余数是否为0
{
n = n + sizeof(size_t) - (n & sizeof(size_t) - 1)
}
return n;
}