最近看到ngx_align_ptr,说是对齐用的,贴上代码:
#define ngx_align(d, a) (((d) + (a - 1)) & ~(a - 1))
#define ngx_align_ptr(p, a) \
(u_char *) (((uintptr_t) (p) + ((uintptr_t) a - 1)) & ~((uintptr_t) a - 1))
以下是示例:
ngx_align_ptr(0x1201, 4)
((uintptr_t) (p) + ((uintptr_t) a - 1)) :0001 0010 0000 0100
~((uintptr_t) a - 1):1111 1111 1111 1100
0001 0010 0000 0100 & 1111 1111 1111 1000
0x1204