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

专治SB治疗

专治SB治疗

2016-01-29 17:35

高手风范Linux操作系统内核编码风格,高手风范 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行的终端屏幕),你就有更多的空行来安插注释。

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

[1] [2] [3]   

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/linux/)
展开更多 50%)
分享

猜你喜欢

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

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
高手风范Linux操作系统内核编码风格

高手进阶重新编译Linux操作系统的内核

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
高手进阶重新编译Linux操作系统的内核

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

Linux操作系统内核编译详解

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
Linux操作系统内核编译详解

Linux操作系统内核中工作队列的操作

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
Linux操作系统内核中工作队列的操作

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

Linux操作系统发展简史

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
Linux操作系统发展简史

Linux操作系统窗口系统精彩问与答

Linux Linux命令 Linux安装 Linux编程 Linux桌面 Linux软件 Linux内核 Linux管理
Linux操作系统窗口系统精彩问与答

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

牛刀小试-PowerPoint2003刻录功能

牛刀小试-PowerPoint2003刻录功能

XMLHTTP+javascript+Asp写得聊天室 无刷新实现(二)

XMLHTTP+javascript+Asp写得聊天室 无刷新实现(二)
下拉加载更多内容 ↓