c語言的程式設計風格

2021-03-31 11:47:46 字數 2355 閱讀 9040

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周以前的做的事情.

第五章:注釋

注釋是一件很好的事情,但是過多的注釋也是危險的,不要試圖區解釋你的**是注釋如何如何的好:你應該將**寫得更好,而不是花費大量的時間去解釋那些糟糕的**.

通常情況下,你的注釋是說明你的**做些什麼,而不是怎麼做的.而且,要試圖避免將注釋插在乙個函式體裡:假如這個函式確實很複雜,你需要在其中有部分的注釋,你應該回到第四章看看.你可以寫些簡短的注釋來註明或警告那些你認為特別聰明(或極其醜陋)的部分,但是你必須要避免過多.取而代之的是,將注釋寫在函式前,告訴別人它做些什麼事情,和可能為什麼要這樣做.

c語言程式設計風格

關於c語言的程式設計風格,不同的書上有不同的推薦,不同的公司有不同的要求。這裡,做了一下基本規範說明。1.變數定義 在定義變數時,字首使用變數的型別,之後使用表現變數用途的英文單詞或單詞縮寫,且每個單詞或縮寫的首字母大寫,各種字首縮寫如下 無符號變數使用 u8,u16,u32 例 unsigned ...

c語言的程式設計風格

c語言的程式設計風格 第一章 縮排格式 tab是8個字元,於是縮排也是8個字元.有很多怪異的風格,他們將縮排格式定義為4個字元 設定為2個字元 的深度,這就象試圖將pi定義為3一樣讓人難以接受.理由是 縮排的大小是為了清楚的定義乙個塊的開始和結束.特別是當你已經在計算機前面呆了20多個小時了以後,你...

C程式設計風格

問 如何在原始檔中合理分配函式?答 通常,相關的函式放在同乙個檔案中。有時候 例如開發庫的時候 乙個原始檔 自然也 就是乙個目標檔案 放乙個函式比較合適。有時候,尤其是對某些程式設計師,太多的原始檔可能 會很麻煩,將多數以至所有的程式都放入少數幾個大的原始檔中也很誘人,甚至也是合適的。希望用 sta...