#define offsetof(s,m) (size_t)&(((s *)零)->m) 求详细解释
#define offsetof(s,m)(size_t)&(((s *)0)-m) 求详细解释#define offsetof(s,m)(size_t)&(((s *)0)-m)求
#define offsetof(s,m) (size_t)&(((s *)0)->m) 求详细解释
#define offsetof(s,m) (size_t)&(((s *)0)->m)
求详细解释,尤其是0 表示什么?
[解决办法]
求结构体(或类)s中成员变量m的偏移地址。
[解决办法]
举例:
class A
{
int a;
int b;
}
则offsetof(A,b)=4
展开宏就是:
(size_t)&(((A *)0)->b
你把这儿的0当作一个变量来看,就明白多了,相当于这个变量的地址为0(注意:0是可以对指针赋值的,其他值比如123是不行的)。