if_attact中几个宏定义

#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就是进行了这样的操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值