免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: HopeCao
打印 上一主题 下一主题

挑战高手,看一行看不懂的代码. [复制链接]

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
61 [报告]
发表于 2006-08-16 18:38 |只看该作者
原帖由 醉卧水云间 于 2006-8-16 18:33 发表
怎么也没明白这个 “->;” 怎么就能通过编译,还讨论的热火朝天,哎,看来还要仔细学学c了。


这个是论坛的遗留问题,新旧论坛交替的时候个别符号没有转对.

论坛徽章:
0
62 [报告]
发表于 2006-08-16 20:57 |只看该作者
唉 看样自己还是从头在翻翻课本吧...  终于知道天有多高, 人外有人啊 .努力学习..学习...

论坛徽章:
0
63 [报告]
发表于 2006-08-17 09:52 |只看该作者
这种代码在linux内核很常见,算偏移量

论坛徽章:
0
64 [报告]
发表于 2006-08-17 13:30 |只看该作者
;是什么东西?有;做什么?

论坛徽章:
0
65 [报告]
发表于 2006-10-22 17:06 |只看该作者

回复 1楼 HopeCao 的帖子

#defiine test(z,w) (&(((z*)0)->;w)) ->;w为什么这里有;号讷?

论坛徽章:
0
66 [报告]
发表于 2006-10-24 03:27 |只看该作者
我就说嘛,这个;在中间,没有人置疑的。
原来是因为论坛转换的缘故

论坛徽章:
0
67 [报告]
发表于 2006-10-25 15:24 |只看该作者
原帖由 dzbjet 于 2006-8-16 13:12 发表
faint~~~
讨论了半天,结果连这个宏定义的错误都没看出来!!!

因该是:

  1. #define test(z,w) (&(((z*)0)->w))
复制代码


linux 内核代码中这种伎俩经常采用,为了知道一个类(结构)中某个 ...


linux内核情景分析一书中间对此花了一定的笔墨的

论坛徽章:
0
68 [报告]
发表于 2006-10-25 15:34 |只看该作者
一眼就看出来了

原来这里有道面试题 就是说这个。

还是 struct zhx{
int lanjuan;
};
这个结构体里的成员lanjuan,它的相对偏移量就是4;

偏移量为0

论坛徽章:
0
69 [报告]
发表于 2006-10-30 10:28 |只看该作者
原帖由 zhxlanjuan 于 2003-2-24 18:48 发表
各位,不好意识,我在解释一下,
#define offsetof(s, m)  (size_t)(&(((s *)0)->;m))
这个宏用来求一个结构体成员相对于这个结构体首地址的偏移量,
例如:
struct zhx{
int lanjuan;
};
这个结构 ...


我想请问
&zhx->lanjuan 和&zhx的地址有什么不同吗
(size_t)(&(((s *)0)->m))
为什么我感觉第一个m元素的地址就是首地址,这样的话怎么能是offset呢
谢谢

论坛徽章:
0
70 [报告]
发表于 2006-10-30 14:14 |只看该作者
";" 以为自己不懂没敢说话 哎 想了半天 查了半天
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP