| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1179 人关注过本帖
标题:这个宏定义的理解
取消只看楼主 加入收藏
ml232528
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:367
专家分:879
注 册:2007-7-23
结帖率:80%
收藏
 问题点数:0 回复次数:2 
这个宏定义的理解
#define offset(s,m) (size_t)&(((s*)0)->m)
这个怎么理解
实例中s是一个类 m是s的一个成员 它指向s
搜索更多相关主题的帖子: 定义 
2008-09-14 21:09
ml232528
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:367
专家分:879
注 册:2007-7-23
收藏
得分:0 
#define set(s,m) (size_t)&(((s*)0)->m)
class a
{
   a* pNext;
   void* pDate;
}
int main()
{
   .
   .
   size_t m=set(a,pNext);
   .
   .
}

-︻┻┳═一 ☆ 悲伤的代价就是让自己明白什么是最重要的和应该珍惜的
2008-09-14 21:31
ml232528
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:367
专家分:879
注 册:2007-7-23
收藏
得分:0 
太谢谢楼上的了

大体上明白了
(size_t)&(((s*)0)->m) 就是求 成员m的地址与s类对象首地址的差

-︻┻┳═一 ☆ 悲伤的代价就是让自己明白什么是最重要的和应该珍惜的
2008-09-15 09:03
快速回复:这个宏定义的理解
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016027 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved