#define _offsetof(t,m) ((int)((caddr_t)&((t*)0)->m))
这个宏是得到结构体t中的t->m偏移量
caddr_t定义:
#define char* caddr_t
现将0强制转换t*类型然后求址访问m.再转换成caddr_t类型的指针,再强转为int类型得到偏移量
#define ROUDUP(a) (1+(((a)-1)|(sizeof(long)-1)))
该宏将a向上舍入为long类型,
也就是说将a+一个数变成可以整出sizeof(long)类型的整数
原理就是如果这个数化为二进制数最后两位为00的所有数都可以整除4,ROUDUP就是进行了这样的操作