分类: 系统运维
2011-04-21 23:17:37
17.3
...((int)&((TYPE *)0)->MEMBER)的意思是:首先,把0转换成一个指针,这个指针指向一个TYPE的类型,然后取得这个TYPE类型的成员MEMBER的地址,当然这是相对地址,再转换成int自然就是MEMBER成员在TYPE类型定义中的偏移.可以这样来理解,假设有一个变量TYPE *p,p->MEMBER指向这个MEMBER成员,那么&(p->MEMBER)就是MEMBER相对于p的地址,那么&(p->MEMBER)-p实际上也表示了MEMBER这个成员在TYPE类型中的偏移.而这里p变成了0,于是这个表达式就表示了相对于0的地址,也就是在TYPE这个类型中的偏移了.
17.4
...所谓传递文件描述符实际上传递的是指向file table的指针.