linux/compile.h头文件说明
__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 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |