c語言的程式設計風格
第一章:縮排格式
tab是8個字元,於是縮排也是8個字元.有很多怪異的風格,他們將縮排格式定義為4個字元(設定為2個字元!)的深度,這就象試圖將pi定義為3一樣讓人難以接受.
理由是:縮排的大小是為了清楚的定義乙個塊的開始和結束.特別是當你已經在計算機前面呆了20多個小時了以後,你會發現乙個大的縮排格式使得你對程式的理解更容易.
現在,有一些人說,使用8個字元的縮排使得**離右邊很近,在80個字元寬度的終端螢幕上看程式很難受.回答是,但你的程式有3個以上的縮排的時候,你就應該修改你的程式.
總之,8個字元的縮排使得程式易讀,還有乙個附加的好處,就是它能在你將程式變得巢狀層數太多的時候給你警告.這個時候,你應該修改你的程式.
第二章:大符號的位置
另外乙個c程式程式設計風格的問題是對大括號的處理.同縮排大小不同,幾乎沒有什麼理由去選擇一種而不選擇另外一種風格,但有一種推薦的風格,它是kernighan和ritchie的經典的那本書帶來的,它將開始
的大括號放在一行的最後,而將結束大括號放在一行的第一位,如下所示:
if (x is true)
然而,還有一種特殊的情況:命名函式:開始的括號是放在下一行的第一位,如下:
int function(int x)
所有非正統的人會非難這種不一致性,但是,所有思維正常的人明白: (第一) k&r是對的,(第二)如果k&r不對,請參見第一條. (:-))......另外,函式也是特殊的,不一定非得一致.
需要注意的是結束的括號在它所佔的那一行是空的,除了它跟隨著同一條語句的繼續符號.如"while"在do-while迴圈中,或者"else"在if語句中.如下:
do while (condition);
以及if (x == y)
else if (x > y)
else
理由: k&r.
另外,注意到這種大括號的放置方法減小了空行的數量,但卻沒有減少可讀性.於是,在螢幕大小受到限制的時候,你就可以有更多的空行來寫些注釋了.
第三章:命名系統
c是一種簡潔的語言,那麼,命名也應該是簡潔的.同module-2以及pascal語言不同的是,c程式設計師不使用諸如thisvariableisatemporarycounter之類的命名方式.乙個c語言的程式設計師會將之命名為"tmp",這很容易書寫,且並不是那麼難以去理解.
然而,當混合型別的名字不得不出現的時候,描述性名字對全域性變數來說是必要的了.呼叫乙個名為"foo"全域性的函式是很讓人惱火的.全域性變數(只有你必須使用的時候才使用它) ,就象全域性函式一樣,需要描述性的命名方式.假如你有乙個函式用來計算活動使用者的數量,你應該這樣命名--"count_active_users()"--或另外的相近的形式,你不應命名為"**tusr()".
有一種稱為hungarian命名方式,它將函式的型別編碼寫入變數名中,這種方式是腦子有毛病的一種表現---編譯器知道這個型別而且會去檢查它,而這樣只會迷惑程式設計師. --知道為什麼micro$oft為什麼會生產這麼多"臭蟲"程式了把!!.
區域性變數的命名應該短小精悍.假如你有乙個隨機的整數迴圈計數器,它有可能有"i",如果沒有任何可能使得它能被誤解的話,將其寫作"loop_counter"是效率低下的.同樣的,""tmp"可以是任何臨時數值的函式變數.
第四章:函式
函式應該短小而迷人,而且它只作一件事情.它應只覆蓋一到兩個螢幕(80*24一屏),並且只作一件事情,而且將它做好.(這不就是unix的風格嗎,譯者注).
乙個函式的最大長度和函式的複雜程度以及縮排大小成反比.於是,如果你已經寫了簡單但長度較長的的函式,而且你已經對不同的情況做了很多很小的事情,寫乙個更長一點的函式也是無所謂的.
然而,假如你要寫乙個很複雜的函式,而且你已經估計到假如一般人讀這個函式,他可能都不知道這個函式在說些什麼,這個時候,使用具有描述性名字的有幫助的函式.
另外乙個需要考慮的是區域性變數的數量.他們不應該超過5-10個,否則你有可能會出錯.重新考慮這個函式,將他們分割成更小的函式.人的大腦通常可以很容易的記住7件不同的事情,超過這個數量會引起混亂.你知道你很聰明,但是你可能仍想去明白2周以前的做的事情.
第5章:注釋
注釋是一件很好的事情,但是過多的注釋也是危險的,不要試圖區解釋你的**是注釋如何如何的好:你應該將**寫得更好,而不是花費大量的時間去解釋那些糟糕的**.
通常情況下,你的注釋是說明你的**做些什麼,而不是怎麼做的.而且,要試圖避免將注釋插在乙個函式體裡:假如這個函式確實很複雜,你需要在其中有部分的注釋,你應該回到第四章看看.你可以寫些簡短的注釋來註明或警告那些你認為特別聰明(或極其醜陋)的部分,但是你必須要避免過多.取而代之的是,將注釋寫在函式前,告訴別人它做些什麼事情,和可能為什麼要這樣做.
c語言程式設計風格
關於c語言的程式設計風格,不同的書上有不同的推薦,不同的公司有不同的要求。這裡,做了一下基本規範說明。1.變數定義 在定義變數時,字首使用變數的型別,之後使用表現變數用途的英文單詞或單詞縮寫,且每個單詞或縮寫的首字母大寫,各種字首縮寫如下 無符號變數使用 u8,u16,u32 例 unsigned ...
c語言的程式設計風格
c語言的程式設計風格 第一章 縮排格式 tab是8個字元,於是縮排也是8個字元.有很多怪異的風格,他們將縮排格式定義為4個字元 設定為2個字元 的深度,這就象試圖將pi定義為3一樣讓人難以接受.理由是 縮排的大小是為了清楚的定義乙個塊的開始和結束.特別是當你已經在計算機前面呆了20多個小時了以後,你...
C程式設計風格
問 如何在原始檔中合理分配函式?答 通常,相關的函式放在同乙個檔案中。有時候 例如開發庫的時候 乙個原始檔 自然也 就是乙個目標檔案 放乙個函式比較合適。有時候,尤其是對某些程式設計師,太多的原始檔可能 會很麻煩,將多數以至所有的程式都放入少數幾個大的原始檔中也很誘人,甚至也是合適的。希望用 sta...