RT_ALIGN(size, align)
#define RT_ALIGN(size, align) (((size) + (align) - 1) & ~((align) - 1))
RT_ALIGN(size,align),作用是将 size 提升为 align 定义的整数的倍数,例如,RT_ALIGN(13,4) 将返回 16。
#define RT_ALIGN(size, align) (((size) + (align)-1) & ~((align)-1))
int main()
{
int size = 14;
int align = 4;
int x =(size) + (align)-1;
int y = ~((align)-1); //减一取反
int z = ~(align) +1; //取反加一,和上面等效
int a = ((size) + (align)-1) & ~((align)-1);
printf("%d,%d,%d,%d", x,y,z,a);
return 0;
}
运行结果:
[Running] cd "c:\Users\bo_liu7\Desktop\vscode_c\" && gcc add.c -o add && "c:\Users\bo_liu7\Desktop\vscode_c\"add
17,-4,-4,16