当前位置:  技术问答>linux和unix

谁帮我看看这个宏是什么意思?

    来源: 互联网  发布时间:2015-10-10

    本文导语:  #define rb_entry(ptr, type, member)           ((type *)((char *)(ptr) - (unsigned long)(&((type *)0) -> member))) | (unsigned long)(&((type *)0) -> member) 这个是求出member在type类型里头的偏移量 你可以把0替...

#define rb_entry(ptr, type, member)  
        ((type *)((char *)(ptr) - (unsigned long)(&((type *)0) -> member)))

|
(unsigned long)(&((type *)0) -> member) 这个是求出member在type类型里头的偏移量
你可以把0替换成temp理解 就成了 (&((type *)temp) -> member) 就是求member的地址,其地址算法为 temp地址+member在temp里头的偏移量  当 temp=0时候 就算出的是偏移量
假如现在我们知道了偏移量,又知道了member的地址,那么 temp的地址就是member地址减去偏移量
#define rb_entry(ptr, type, member)  
        ((type *)((char *)(ptr) - (unsigned long)(&((type *)0) -> member)))
这个ptr就是member的地址,type是整个结构体的类型
也就是说这段宏的功能是求结构体的首地址

|
这是因为指针的加减运算是和指针所指类型的size相关。比如,一个size为8的类型的指针p,那么p-1的真实值就比p后退了8个字节。所以在宏中,先把指针类型改为char *型,为了让p-n只后退n个字节。

    
 
 

您可能感兴趣的文章:

  • 哪个高个帮看看这个是什么意思啊,尤其是那个||'/'是什么意思啊?详细点啊,高人们
  • 帮我看看这段代码什么意思
  • 今天第一次送分...大虾帮忙看看。 函数意思? 在线等哦!!
  • 大家帮我看看,这个文件的意思.
  • 那位朋友帮忙看看这是什么意思?多谢
  • 大家看看这句话什么意思?(关于内部类)
  • 看看这句话是什么意思?
  • 大家看看ndstat什么意思?
  • 请大家帮我看看这是什么意思?
  • 帮忙看看这个定义什么意思
  • 看看这个脚本命令是什么意思?
  • 请帮忙看看这个编译错误信息是什么意思,该怎么修改?谢谢
  • Shell中$!到底是什么意思?以及$@和$*的区别,请给举个例子看看!
  • 英文好的,hardcode 是什么意思?看看下边这两句话。
  • 帮我看看这几个英文java的单词是什么意思啊
  • 那位大侠帮忙看看下面这两句代码什么意思??
  • 哪位大哥给我看看下面命令是什么意思?谢谢了·~~
  • 看过Java 2核心技术第一卷的朋友请进,看看下面简单的几句代码啥意思?
  • 请大家帮忙看看这段代码是什么意思?
  • 看看thinkinjava这里是什么意思?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 简单!看看这个方法!简单!看看这个方法!
  • linux高手看看
  • 好消息,近来看看......
  • 我想看看有关Linux和Unix的源码,有什么好的建议
  • 想看看linux的内核源代码!从哪里开始!给点建议!!
  • 我初学JAVA,大家愿意交朋友的进来看看!留QQ的给分啊!
  • 关于全选的问题大家帮忙看看~
  • jsp论坛,大家快去看看,解决树形目录http://52jsp.126.com
  • 各位大侠,小侠,快过来看看。
  • 看过操作系统设计与实现的进来看看
  • 请进来看看!!
  • 帮我看看下面这条语句??
  • 大家去软件工程论坛里面去看看那,我发了700分的问题!!
  • 建议去这里看看,有好多基本的重要知识! 绝对值得一看!
  • 大家帮我看看,我好把贴子结了,里面有100分。。。。。。
  • 到 http://www.xbit2008.com 看看技术文章把! 我写的或从网上摘的!
  • 虚心请教问题,帮我看看好吗?
  • 我刚申请的域名rootsafe.com大家看看怎么样? up有分!
  • 帮我看看是不是被黑了?
  • 我的Solaris启动不了了,请帮忙看看


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3