選擇變量名時,長度不重要,但清楚的表達很重要。長名稱可用于全局變量,因為它不常用,而將在每行循環(huán)上要使用的數(shù)組下標命名為 i 就完全夠了。假如使用“index”或“elementnumber”的話,不僅輸入得更多,而且會使計算的細節(jié)不明確。假如使用長變量名,有時候會使代碼更難理解。比較:
當一塊代碼有數(shù)個標號時,將這些標號放在單獨的行。這種風格與垂直空格的使用一致,并且使重新安排 case 選項(假如那是必需的話)成了一項簡單的任務(wù)。應(yīng)對 C switch 語句的“落空”特征加以注釋,以便于以后的維護。假如這一特性曾給您帶來“麻煩”,那么您就能夠理解這樣做的重要性!
switch (eXPr) {
case ABC:
case DEF:
statement;
break;
case UVW:
statement; /*FALLTHROUGH*/
case XYZ:
statement;
break;
}
盡管從技術(shù)上說,最后一個 break 不是必需的,但是,假如以后要在最后一個 case 之后添加了另一個 case,那么一致地使用 break 可以防止“落空”錯誤。假如使用 default case 語句的話, 它應(yīng)當永遠是最后一個,并且(假如它是最后的語句)不需要最后的 break 語句。
l 常量
符號常量使代碼更易于閱讀。應(yīng)盡量避免使用數(shù)字常量;使用 C 預(yù)處理器的 #define 函數(shù)給常量賦予一個有意義的名稱。在一個位置(最好在頭文件中)定義值還會使得治理大型程序變得更輕易,因為只需更改定義就可以統(tǒng)一地更改常量值。可以考慮使用枚舉數(shù)據(jù)類型作為對聲明只取一組離散值的變量的改進方法。使用枚舉還可以讓編譯器對您枚舉類型的任何誤用發(fā)出警告。任何直接編碼的數(shù)字常量必須至少有一個說明值的出處的注釋。
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 的一名技術(shù)顧問,他幫助獨立軟件供給商在 pSeries 服務(wù)器啟用他們的應(yīng)用程序。Shiv 有作為軟件開發(fā)人員、系統(tǒng)治理員和講師的豐富經(jīng)驗。他在 AIX 的系統(tǒng)治理、問題確定、性能調(diào)優(yōu)和規(guī)模指導方面提供支持。Shiv 在 AIX 誕生之時就從事這方面的工作。他從 Ohio University 獲得物理博士學位,可以通過 sdutta@us.ibm.com與他聯(lián)系。
Gary R. Hook 是 IBM 的高級技術(shù)顧問,為獨立軟件供給商提供給用程序開發(fā)、移植和技術(shù)援助。Hook 先生的職業(yè)經(jīng)歷主要在基于 Unix 的應(yīng)用程序開發(fā)方面。在 1990 年加入 IBM 時,他在位于得克薩斯州 Southlake 的 AIX Technical Support 中心工作,為客戶提供咨詢和技術(shù)支持服務(wù),重點在 AIX 應(yīng)用程序體系結(jié)構(gòu)方面。Hook 先生現(xiàn)在居住在奧斯汀,在 1995 到 2000 年期間,他是 AIX Kernel Development 團隊的一員,專門研究 AIX 鏈接程序、裝入程序和通用應(yīng)用程序開發(fā)工具。可以通過 ghook@us.ibm.com與他聯(lián)系。