#define?ROUND_UP(x,?align)?(((int)?(x)?+?(align?-?1))?&?~(align?-?1))
#define?ROUND_DOWN(x,?align)?((int)(x)?&?~(align?-?1))
用於檢查是否已經對齊:
#define?ALIGNED(x,?align)?(((int)(x)?&?(align?-?1))?==?0)
其中,x為要計算或者檢查的值,align是要對齊的單位
例如:
#define?_ALLOC_ALIGN_SIZE?16
#define?MEM_ROUND_UP(x)?ROUND_UP(x,?_ALLOC_ALIGN_SIZE)
#define?MEM_ROUND_DOWN(x)?ROUND_DOWN(x,?_ALLOC_ALIGN_SIZE)