當一塊代碼有數個標號時,將這些標號放在單獨的行。這種風格與垂直空格的使用一致,并且使重新安排 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與他聯系。