高手风范Linux操作系统内核编码风格

2016-01-29 17:35 8 1 收藏

高手风范Linux操作系统内核编码风格,高手风范 Linux操作系统内核编码风格

【 tulaoshi.com - Linux 】

这篇简短的文章描述了Linux内核首选的编码风格。编码风格是很个人化的东西,我不会把自己的观点强加给任何人。但是,Linux内核的代码毕竟是我必须有能力维护的,因此我宁愿它的编码风格是我喜欢的。请至少考虑一下这一点。

首先,我建议打印一份《GNU编码标准》,不要阅读它。烧掉它,它不过是象征性的姿态。然后,请看:

第 1 章: 缩进

Tabs(制表符)是8个字符的大小,因此缩进也应该是8个字符的大小。有些叛逆主张试图把缩进变成4个(甚至是2个!)字符的长度,这就好象试图把PI (案,圆周率)定义成3是一样的。

依据:缩进背后的思想是:清楚地定义一个控制块从哪里开始,到哪里结束。尤其是在你连续不断的盯了20个小时的屏幕后,如果你有大尺寸的缩进。你将更容易发现缩进的好处。

现在,有些人说8个字符大小的缩进导致代码太偏右了,并且在一个80字符宽的终端屏幕上看着很不舒服。对这个问题的回答是:如果你有超过3个级别的缩进,你就有点犯糊涂了,应当修改你的程序。

简而言之,8个字符的缩进使程序更易读,而且当你把功能隐藏的太深时,多层次的缩进还会对此很直观的给出警告。要留心这种警告信息。

第 2 章: 放置花括号

C程序中另一个要主意的就是花括号的放置。与缩进尺寸不同的是,关于如何放置花括号没有技术上的理由。但是,首选的方法是象先知Brain Kernighan和Dennis Ritchie展现的那样:把左括号放在行尾,右括号放在行首。也就是:

if (x is true) {                we do y        }                然而,还有另外一种情况,就是函数:函数应当把左右括号都放在行首。也就是:                int function(int x)        {                body of function        }

叛逆的人们所在皆有。他们说,这样会导致…嗯,不一致性(案,指函数的花括号使用与其他情况不统一)。但是所有正确思考的人都知道:(1) K&R是正确的;(2) K&R还是正确的。 而且,函数与别任何东西都不一样(在C语言中你没法隐藏它)。

注意,右括号所在的行不应当有其它东西,除非跟随着一个条件判断。也就是do-while语句中的“while”和if-else语句中的“else”。象这样:

do {                body of do-loop        } while (condition);        和:                if (x == y) {                ..        } else if (x ; y) {                ...        } else {                ....        }

依据: K&R。

而且,注意这种花括号的放置减少了空行的数目,并没损害可读性。因此,当屏幕上不可以有很多空行时(试想25行的终端屏幕),你就有更多的空行来安插注释。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/linux/)

[1] [2] [3]   

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/linux/)

来源:http://www.tulaoshi.com/n/20160129/1502068.html

延伸阅读
传真是企业中的常规应用,许多商贸往来的信息交换都需要利用传真来完成,但是却不可能为每个人配备一台传真机。用Linux系统可以建立一个人人都可以使用的传真服务器系统。 条件: 1、Linux操作系统 2、efax服务器 3、支持1、2类传真的调制解调器 安装好的RedHat 6操作系统中已经完整地配置好了传真系统,关键是将...
标签: 电脑入门
优化优化,我们天天在叫Windows 操作系统优化,但是你想过没有,你可能是该优化的没有做,把不该优化的给优化了。 1、浏览器。有IE不用,非要装什么MYIE和MATHON,这些都是寄生在IE上的不说,光是IE只要你是有心人,去国内外的高手那里找一些小小插件,就实现MYIE那些功能,为什么你非要再装一个呢? 2、邮件工具。Outlook express现成在系统...
  Linux可以与MS-DOS、OS/2、Windows等其他操作系统共存于同一台机器上。它们均为操作系统,具有一些共性,但是互相之间各有特色,有所区别。  目前运行在PC机上的操作系统主要有Microsoft的MS-DOS、Windows、Windows NT、IBM的OS/2等。早期的PC机用户普遍使用MS-DOS,因为这种操作系统对机器的硬件配置要求不高,而随...
  作者: Luster 出处: LinuxAid 使用Linux Kernel Module的一般目的就是扩展系统的功能,或者给某些特殊的设备提供驱动等等。其实利用Linux内核模块我们还可以做一些比较“黑客”的事情,例如用来拦截系统调用,然后自己处理。嘿嘿,有意思的说。 下面给出一个简单的例子,说明了其基本的工作过程。 #define MODULE #defin...
  cron是一个linux下的定时执行工具,可以在无需人工干预的情况下运行作业。由于Cron 是Linux的内置服务,但它不自动起来,可以用以下的方法启动、关闭这个服务: /sbin/service crond start //启动服务 /sbin/service crond stop //关闭服务 /sbin/service crond restart //重启服务 /sbin/service crond reload...

经验教程

408

收藏

34
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部