快速业务通道

linux/compile.h头文件说明

作者 佚名技术 来源 Linux系统 浏览 发布时间 2012-04-20
__always_inline inline

  #endif

  这里noinline与inline属性是两个对立的属性,从词面的意思就非常好理解了.

  #ifndef __cold

  #define __cold

  #endif

  从注释中就可以看出来,如果一个函数的属性为__cold,那么编译器就会认为这个函数几乎是不可能被调用的,在进行代码优化的时候,就会考虑到这一点.不过我没有看到在gcc里支持这个属性的说明.

  #ifndef __section

  # define __section(S) __attribute__ ((__section__(#S)))

  #endif

  这个比较容易理解了,用来修饰一个函数是放在哪个区域里的,不使用编译器默认的方式.这个区域的名字由定义者自己取,格式就是__section__加上用户输入的参数.

  #define ACCESS_ONCE(x) (*(volatile typeof(x) *)&(x))

  这个函数的定义很有意思,它就是访问这个x参数所对应的东西一次,它是这样做的:先取得这个x的地址,然后把这个地址进行变换,转换成一个指向这个地址类型的指针,然后再取得这个指针所指向的内容.这样就达到了访问一次的目的,哈哈.

  真不容易,终于把这个东西写完了,仅仅几十行的代码,里面所包含的知识真的是异常丰富,通过分析这个头文件,我自己学得了不少东西,不敢独享,拿出来给与兴趣的朋友一同分享.

  原文地址 http://www.phpfans.net/article/htmls/200908/Mjc3NTkx.html

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号