当一块代码有数个标号时,将这些标号放在单独的行。这种风格与垂直空格的使用一致,并且使重新安排 case 选项(假如那是必需的话)成了一项简单的任务。应对 C switch 语句的“落空”特征加以注释,以便于以后的维护。假如这一特性曾给您带来“麻烦”,那么您就能够理解这样做的重要性!
switch (eXPr) {
case ABC:
case DEF:
statement;
break;
case UVW:
statement; /*FALLTHROUGH*/
case XYZ:
statement;
break;
}
尽管从技术上说,最后一个 break 不是必需的,但是,假如以后要在最后一个 case 之后添加了另一个 case,那么一致地使用 break 可以防止“落空”错误。假如使用 default case 语句的话, 它应当永远是最后一个,并且(假如它是最后的语句)不需要最后的 break 语句。
l 常量
符号常量使代码更易于阅读。应尽量避免使用数字常量;使用 C 预处理器的 #define 函数给常量赋予一个有意义的名称。在一个位置(最好在头文件中)定义值还会使得治理大型程序变得更轻易,因为只需更改定义就可以统一地更改常量值。可以考虑使用枚举数据类型作为对声明只取一组离散值的变量的改进方法。使用枚举还可以让编译器对您枚举类型的任何误用发出警告。任何直接编码的数字常量必须至少有一个说明值的出处的注释。
l Obfuscated C and Other Mysteries,由 Don Libes 编写,John Wiley and Sons, Inc. ISBN 0-471-57805-3
l The C Programming Language,Second Edition,由 Brian W. Kernighan 和 Dennis M. Ritchie 撰写,Prentice-Hall,ISBN 0-13-110370-9
l Safer C,由 Les Hatton 编写,McGraw-Hill,ISBN 0-07-707640-0
l C Traps and Pitfalls 由 Andrew Koenig 编写,AT&T Bell Laboratories,ISBN 0-201-17928-9
作者简介
Shiv Dutta 是 IBM Systems Group 的一名技术顾问,他帮助独立软件供给商在 pSeries 服务器启用他们的应用程序。Shiv 有作为软件开发人员、系统治理员和讲师的丰富经验。他在 AIX 的系统治理、问题确定、性能调优和规模指导方面提供支持。Shiv 在 AIX 诞生之时就从事这方面的工作。他从 Ohio University 获得物理博士学位,可以通过 sdutta@us.ibm.com与他联系。
Gary R. Hook 是 IBM 的高级技术顾问,为独立软件供给商提供给用程序开发、移植和技术援助。Hook 先生的职业经历主要在基于 Unix 的应用程序开发方面。在 1990 年加入 IBM 时,他在位于得克萨斯州 Southlake 的 AIX Technical Support 中心工作,为客户提供咨询和技术支持服务,重点在 AIX 应用程序体系结构方面。Hook 先生现在居住在奥斯汀,在 1995 到 2000 年期间,他是 AIX Kernel Development 团队的一员,专门研究 AIX 链接程序、装入程序和通用应用程序开发工具。可以通过 ghook@us.ibm.com与他联系。