offsetof 解析
时间:2009-03-31 来源:micklongen
#define offsetof(s,m) (size_t)&(((s *)0)->m)
s: 是结构体
m: 是成员
&(((s *)0)->m)前面的&是取值地址,即取s中成员m的地址
由于s是用地址0((s *)0)开始的,所以s中成员m的地址,也是m在s中的偏移地址。
注意:这里的地址0只是形式地址,我们并没有对它做任何的操作,因此不会引起操作系统的异常。
s: 是结构体
m: 是成员
&(((s *)0)->m)前面的&是取值地址,即取s中成员m的地址
由于s是用地址0((s *)0)开始的,所以s中成员m的地址,也是m在s中的偏移地址。
注意:这里的地址0只是形式地址,我们并没有对它做任何的操作,因此不会引起操作系统的异常。
相关阅读 更多 +