程式撰寫之風格
說明
編譯器只要求文法的正確,
並不要求你用什麼樣子的格式來撰寫你的程式,
但是程式除了讓電腦暸解之外,
你也要讓自己日後能夠看得懂,
還要讓和你一起合作的夥伴們看懂,
所以你應該遵循一些大家習慣的編排格式來撰寫。
當然有的人會說程式能不能看得懂要看它的邏輯安排的狀況,
奇怪的邏輯任你用大家再熟悉的編排格式都沒有用,
不過編排的格式還是一個很關鍵的因素。
三十年的 C 軟體發展歷史當中,
有兩個主要的格式現在大家常常都遵循的:
一是 K&R 及 Berkeley UNIX 的程式撰寫風格,
二是 MicroSoft 眾多軟體的撰寫風格。
前者的流行是因為 BSD UNIX 的原始碼大量流行的關係,
後者則是因為 MicroSoft
晚近的許多發展環境都自動幫程式設計者產生一些骨架程式,
沒有人會花時間再去修改這些骨架程式,
所以其格式流傳亦廣。
本課程中要求的風格
-
階層式的編排
void main(void)
{
____int i, myVariable;
____for (i=0; i<10; i++)
____{
________if (i%2==0)
________{
____________myVariable = myVariable + 10;
____________myVariable = myVariable / 2;
________}
________printf("%d\n",myVariable);
____}
}
上面以底線字元 (underscore) 代表空格,
每一層用四個空格隔開,
不要用 Tab 來安排你的程式,
Tab 字元 (ASCII 0x09) 代表幾個空格視你用的編輯器而定,
並不是一個好的東西,
十年前很多人喜歡用 Tab 字元,
因為可以省下好多個位元組的儲存空間,
但是現在硬碟及記憶體空間都不是問題了,
別再用了吧!
用空格字元來排列你的程式碼還可以讓列印的時候看起來
和在螢幕上看到的一樣喔!
(注意:在 TURBO C 編輯器中當你按下 enter 時,
它會自動置入 Tab 字元,
請你點選 Options/Environment/Editor...
不要選擇 Use Tab Character,
如此當你按下 enter 時,
它會以空格來編排你的程式。)
-
成對的大括號務必置於同一行。
-
適當地使用空白列來區隔功能上無關的程式碼,
使你的程式段落分明。
-
以英文文章中標準的標點符號打法安排標點符號及空格:
-
標點符號緊接在字元後,不要空格,
-
兩個單字之間只要一個空格即可。
例如:
This^is^the^first^time^we^teach^C^programming^in^the^
laboratory;^^However,^this^is^the^3rd^year^I^offer^this^class.
-
遵循變數及函式的命名法則
,
善用變數及函式的名稱來說明程式的意圖,
再輔佐以說明文字 (例如:/* .... */),
說明文字不要多到影響程式的安排。
-
每一函式請以 50 列到 100 列為限,
適當地以函式分割不同功能的模組,
另一個分割函式的原則是:
每一個函式內最好只做三件獨立有意義的事,
別一下子在一個函式中做太多的工作。
-
非必要請嚴格避免使用全域變數。