我們不僅要寫高效的**,還要寫可讀性很強的**,隨著我們所開發系統的複雜性的不斷提高,這就要求我們所寫的程式具有3個特性:1、可讀性;2、可多人協作性;3、可移植性。但是,像我們這樣電子專業畢業的學生,都沒有接受過「軟體設計方**」、「作業系統原理」等課程的深入訓練,這就使我們所寫的程式與軟體專業工程師所寫的程式具有較大的差距,這些問題使得公司在程式的**維護上面臨著諸多的困難。這種窘境需要打破!
本文從「c語言程式設計規範」著手,著重講授如何書寫規範性的c語言程式**,文中所舉例項,均為知名公司所採用的c語言規範。按照本系列課程嚴格要求自己規範性編寫c語言**,可使得我們書寫的程式給人耳目一新的感覺,易於閱讀,並避免潛在的邏輯性錯誤的發生。
可讀性:
a、注意運算子的優先順序,並用括號明確表示式的操作順序,避免使用預設優先順序。
說明:防止閱讀程式時產生誤解,防止因預設的優先順序與設計思想不符而導致程式出錯。
示例:下列語句中的表示式
word = (high << 8) | low (1)
if ((a | b) && (a & c)) (2)
if ((a | b) < (c & d)) (3)
如果書寫為
high << 8 | low
a | b && a & c
a | b < c & d
由於high << 8 | low = ( high << 8) | low
a | b && a & c = (a | b) && (a & c)
(1)(2)不會出錯,但語句不易理解;
a | b < c & d = a | (b < c) & d,(3)造成了判斷條件出錯。
b、避免使用不易理解的數字,用有意義的標識來替代。涉及物理狀態或者含有物理意義的常量,不應直接使用數字,必須用有意義的列舉或巨集來代替。
示例:如下的程式可讀性差。
if (trunk[index].trunk_state == 0)
應改為如下形式。
#define trunk_idle 0
#define trunk_busy 1
if (trunk[index].trunk_state == trunk_idle)
c、源程式中關係較為緊密的**應盡可能相鄰。
說明:便於程式閱讀和查詢。 示例:以下**布局不太合理。
rect.length = 10;
char_poi = str;
rect.width = 5;
若按如下形式書寫,可能更清晰一些。
rect.length = 10;
rect.width = 5; // 矩形的長與寬關係較密切,放在一起。
char_poi = str;
d、不要使用難懂的技巧性很高的語句,除非很有必要時
說明:高技巧語句不等於高效率的程式,實際上程式的效率關鍵在於演算法。
示例:如下表示式,考慮不周就可能出問題,也較難理解。
* stat_poi ++ += 1;
* ++ stat_poi += 1;
應分別改為如下。
*stat_poi += 1;
stat_poi++; // 此二語句功能相當於「 * stat_poi ++ += 1; 」
++ stat_poi;
*stat_poi += 1; // 此二語句功能相當於「 * ++ stat_poi += 1; 」
。csdn:
C語言編碼規範 4 可讀性
擴充套件閱讀鏈結 c語言編碼規範 1 檔案與目錄 c語言編碼規範 2 排版 c語言編碼規範 3 注釋 c語言編碼規範 5 變數 結構 常量 巨集 c語言編碼規範 6 函式 程式設計師常用單詞彙總 1 注意運算子的優先順序,並用括號明確表示式的操作順序,避免使用預設優先順序。word high 8 l...
軟體程式設計規範總則 4 可讀性
4 1 注意運算子的優先順序,並用括號明確表示式的操作順序,避免使用預設優先順序。說明 防止閱讀程式時產生誤解,防止因預設的優先順序與設計思想不符而導致程式出錯。示例 下列語句中的表示式 word high 8 low 1 if a b a c 2 if a b c d 3 如果書寫為 high 8...
可讀性設計規範
1.行寬 因此我們可以讓內容區的每一行承載合適的字數,來提高易讀性。傳統圖書排版每行最佳字元數是55 75,實際在網頁上每行字元75 85更流行。中文在14號字型時,建議35 45個文字。比如下圖 2.間距 行距是影響易讀性非常重要的因素,過寬的行距會會讓文字失去延續性,影響閱讀 而行距過窄,則容易...