科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道深入学习Linux系统,Linux内核编程风格 (1)

深入学习Linux系统,Linux内核编程风格 (1)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

这篇短小的文档用于描述linux内核编程中推荐的编程风格。编程风格是很个人化的东西,我不想把我的观点_强加_给任何人,但这是我必须维护的代码中所遵守的,我也建议其他部分的代码也能遵守它。

作者:superstar 来源:chinaitlab 2007年10月29日

关键字: 风格 编程 内核 Linux

  • 评论
  • 分享微博
  • 分享邮件
 

这篇短小的文档用于描述linux内核编程中推荐的编程风格。编程风格是很个人化的东西,我不想把我的观点_强加_给任何人,但这是我必须维护的代码中所遵守的,我也建议其他部分的代码也能遵守它。请至少给这里的观点一些考虑。

首先,我建议你打印一份GNU代码风格,不是去读它,而是把它烧了,这是个很不错的姿态。

下面就是Linux内核编程风格:

第一章:缩进

制表符(tabs)占8个字符,所以缩进也是8个字符。有些异端运动想使用4个字符(甚至是2个字符)的缩进,这和把PI(圆周率)定为3没什么两样。

原因:缩进的根本目的是用来清晰地标识一个控制块的起始。特别是当你连续盯着屏幕看了20 个小时后,你就会体会到更长的缩进的好处了。

现在,有些人提出8字符缩进会使得代码太偏向右边,当使用80字符的终端时很难阅读。答案是如果你需要三层以上的缩进,那么你已经完蛋了,应该改改你的程序了。

简而言之,8字符缩进使得阅读代码更为容易,并且在你的缩进层次过深时提出警告。应该留心这样的警告。关于这一点,我不能苟同,4个字符的缩进确实有它的好处,缩进太多反而看着累。而且有时候仅仅两层嵌套就会使代码很长。

第二章:括号的位置

括号位置的问题在C编程风格中经常被提出。和缩进大小不同,括号位置的选择并没有太多技术上的原因,而更多的是个人的喜好。比如Kernighan和Ritchie的弟子们把左括号放在一行的最后,把右括号放在一行的开始,象这样:

 if (x is true) {
  we do y
  }

但是,函数是一种特殊的情况,函数的左括号放在下一行的开始,象这样:

int function(int x)
  {
  body of function
  }

全世界的异端人士指出这种不一致的做法 ...嗯... 不太一致,但是所有思维正确的人知道 (a) K&R是_对_的 (b) K&R是对的。而且,函数确实是特殊的(你在C中无法对函数进行嵌套)。

注意到右括号完全占有单独的一行,_除非_当它后面还有未完成的语句,比如do语句中的“while”或者if语句中的“else”,想这样:

do {
  body of do-loop
  } while (condition);

if (x == y) {
  ..
  } else if (x > y) {
  ...
  } else {
  ....
  }

还有,注意到这种括号的布局方法还减少了空行(或者说是几乎是空行)的数目,而且没有减小可读性。因为你屏幕上的空行是不可回收资源(这里想一下25行的终端屏幕),这样你会有更多的空行用于加注释。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章