科技行者

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

知识库

知识库 安全导航

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

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

  • 扫一扫
    分享文章到微信

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

C是个斯巴达式(崇尚简洁风格的)语言,所以你的命名方法也应该如此。与Modula-2和Pascal程序员不同,C程序员不使用ThisVariableIsATemporaryCounter这样可爱的名字。一个C程序员会把一个变量

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

关键字: 风格 编程 内核 Linux

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

第三章:命名

C是个斯巴达式(崇尚简洁风格的)语言,所以你的命名方法也应该如此。与Modula-2和Pascal程序员不同,C程序员不使用ThisVariableIsATemporaryCounter这样可爱的名字。一个C程序员会把一个变量

叫做“tmp”,这样的变量名更容易写,而且理解起来也不算太难。但是_,尽管人人都会对大小写混杂的名字皱眉头,全局变量名则必须如此。管一个全局函数叫“foo”是故意找岔。

全局_变量(只有在_真正_需要时才使用)需要有个描述性强的名字,这点和全局函数一样。如果你有个函数用于对活跃用户进行计数,你应该叫它“count_active_users()”,而不是“cntusr()”。

把函数的类型加入到名字中(所谓的匈牙利命名法)是脑损伤的表现 - 编译器知道类型,能够对它进行检查,这种命名法只会把程序员自己搞晕。难怪微软做了那么多充满bug的程序。 哈哈^_^,有道理,不要作茧自缚。局部_变量应该短小扼要。如果你有个随机的整数循环变量,可能最好叫它“i”。把它叫做“loop_counter”是效率低下的,在不会发生混淆的情况下。类型地,“tmp”可以被用于任何类型的存储临时值的变量。如果你担心混淆你的局部变量,那么你就会有另一个问题,所谓的函数膨胀荷尔蒙失衡综合症,请看下一章。

第四章:函数

函数应该短小而甜美,而且只能做一件事。他们应该只用一两屏幕(我们都知道,ISO/ANSI标准屏幕大小是80x24)就能装下,只做并且做好一件事。

函数的最大长度应该与函数的复杂性和缩进层次成反比。所以,如果你有个只有一个很长(但很简单)的case语句的函数,对许多case做一些很少的操作,那么这个函数长点也没有关系。

但是,如果你有一个复杂的函数,你担心一个中等智力的高一学生可能无法理解,那么你应该更严格地遵守最大长度限制。使用有描述性名字的帮助函数(你可以让编译器in-line这些帮助函数,如果你认为性能很重要的话,而且编译器恐怕会比你做的要好)。

函数的另一个指标是局部变量的数目,局部变量的数目不应超过5-10个,否则一定是哪里有问题了。再设计一下这个函数,把它分解得更小一些。人的大脑一般可以同时跟踪7个不同的东西,超过了7个就会晕菜。虽然你很聪明,不过可能你有时会想理解一下两星期前所写的代码。

第五章:注释

注释是好东西,不过存在过分注释的危险。_永远_不要在注释中解释你的代码是如何工作的:更好的做法是写出工作方式显而易见的代码,解释糟糕的代码是浪费时间。

一般来说,注释应该说明代码在做什么,而不是怎么做。并且,不要把注释加在函数主体中:如果函数太复杂以至于必须对各个部分进行注释,那么你可能要再去读读第四章。你可以加入一些短小的注释来提醒或警告一些聪明(或难看)的做法,但不要太过度。更好的选择是,把注释放在函数头,说明函数在做什么,可能还包括它为什么做。

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

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

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