首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

#define offsetof(s,m) (size_t)&(((s *)零)->m) 求详细解释

2013-01-09 
#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是不行的)。

热点排行