Linux 内核中的 GCC 特性(转)
Linux 内核中的 GCC 特性(转)
了解用于 C 语言的 GCC 扩展
文档选项
<tr
valign="top"><td width="8"><img alt="" height="1" width="8"
src="//www.ibm.com/i/c.gif"/></td><td width="16"><img alt="" width="16"
height="16" src="//www.ibm.com/i/c.gif"/></td><td class="small"
width="122"><p><span class="ast">未显示需要 JavaScript
的文档选项</span></p></td></tr>
打印本页
将此页作为电子邮件发送
英文原文
级别: 中级
M. Tim Jones
, 顾问工程师, Emulex Corp.
2009 年 4 月 07 日
Linux® 内核使用 GNU Compiler Collection (GCC) 套件的几个特殊功能。这些功能包括提供快捷方式和简化以及向编译器提供优化提示等等。了解这些特殊的 GCC 特性,学习如何在 Linux 内核中使用它们。
GCC 和 Linux 是出色的组合。尽管它们是独立的软件,但是 Linux 完全依靠 GCC 在新的体系结构上运行。Linux 还利用 GCC 中的特性(称为扩展
)实现更多功能和优化。本文讨论一些重要的扩展,讲解如何在 Linux 内核中使用它们。
GCC 当前的稳定版本(版本 4.3.2)支持 C 标准的三个版本:
International Organization for Standardization (ISO) 最初的 C 语言标准(ISO C89 或 C90)
带修正 1 的 ISO C90
当前的 ISO C99(这是 GCC 使用的默认标准,本文也假设采用这种标准)
注意:
本文假设使用 ISO C99 标准。如果指定比 ISO C99 版本旧的标准,那么可能无法使用本文描述的一些扩展。可以在命令行上使用 -std
选项指定 GCC 使用的实际标准。可以通过 GCC 手册查看哪个标准版本支持哪些扩展(见 参考资料
中的链接)。
可应用的版本
本文主要关注在 2.6.27.1 Linux 内核和 GCC 的 4.3.2 版本中使用 GCC 扩展。每个 C 扩展引用 Linux 内核源代码中的一个文件,可以在其中找到示例。
可以以几种方式对可用的 C 扩展进行分类。本文把它们分为两大类:
功能性
扩展提供新功能。
优化
扩展帮助生成更高效的代码。
功能性扩展
先讨论一些扩展标准 C 语言的 GCC 扩展。
类型发现
GCC 允许通过变量的引用识别类型。这种操作支持泛型编程
。在 C++、Ada 和 J
相关文档:
1. HCI层协议概述:
HCI提供一套统一的方法来访问Bluetooth底层。如图所示:
从图上可以看出,Host Controller Interface(HCI) 就是用来沟通Host和Module。Host通常就是PC, Module则是以各种物理连接形式(USB,serial,pc-card等)连接到PC上的bluetooth Dongle。
在Host这一端:application,SDP,L2cap等协议 ......
Service Discovery Protocol(SDP)提供一种能力,让应用程序有方法发现哪种服务可用以及这种服务的特性。
服务发现协议(SDP或Bluetooth SDP)在蓝牙协议栈中对蓝牙环境中的应用程序有特殊的含意,发现哪个服务是可用的和确定这些可用服务的特征。SDP定义了bluetooth client发现可用bluetooth server服务和它们的特征的方法。 ......
<!--
@page { margin: 2cm }
P { margin-bottom: 0.21cm }
-->
走进
Linux
大观园,人们就像刘姥姥进城,啥都感到很新鲜。今年元旦,
Linux
国际社区给人们献上一份元旦大礼包:
Zorin
OS 2.0
。这有什么好说的?
& ......
http://os.51cto.com 2008-03-21 11:15 佚名 赛迪网
摘要:学会使用vim/emacs,vim/emacs是linux下最常用的源码编辑器,不光要学会用它们编辑源码,还要学会用它们进行查找、定位、替换等。新手的话推荐使用vim,这也是我目前使用的文本编辑器。
标签:Linux C语言 编程
Or ......