vadefs.h中定义了这样一个宏
#define _INTSIZEOF(n) ( sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )
它的作用是获取类型n的大小,但要向上为取整int的整数倍
例如在sizeof(int)=4的前提下
如果sizeof(n) = 4,则结果为4
如果sizeof(n) = 5,则结果为8
由于sizeof(int)一定是2的指数幂,即当x为2的k次方时,有这样一个性质:
N&(~(x-1)) 等价于 N-(N%x)
所以宏利用了这个性质完成了向上取整。不过如果sizeof(int)不是2的指数幂,就不成立了