6、if 語句對出錯的處理
———————————
先看一段程序代碼吧。
if ( ch >= ’0’ && ch <= ’9’ ){
/* 正常處理代碼 */
}else{
/* 輸出錯誤信息 */
printf("error ......\n");
return ( FALSE );
}
這種結(jié)構(gòu)很不好,特別是如果“正常處理代碼”很長時,對于這種情況,最好不要用else。先判斷錯誤,如:
if ( ch < ’0’ || ch > ’9’ ){
/* 輸出錯誤信息 */
printf("error ......\n");
return ( FALSE );
}
/* 正常處理代碼 */
......
這樣的結(jié)構(gòu),不是很清楚嗎?突出了錯誤的條件,讓別人在使用你的函數(shù)的時候,第一眼就能看到不合法的條件,于是就會更下意識的避免。
7、頭文件中的#ifndef
——————————
千萬不要忽略了頭件的中的#ifndef,這是一個很關(guān)鍵的東西。比如你有兩個C文件,這兩個C文件都include了同一個頭文件。而編譯時,這兩個C文件要一同編譯成一個可運行文件,于是問題來了,大量的聲明沖突。
還是把頭文件的內(nèi)容都放在#ifndef和#endif中吧。不管你的頭文件會不會被多個文件引用管你的頭文件會不會被多個文件引用,你都要加上這個。一般格式是這樣的:
#ifndef <標(biāo)識>
#define <標(biāo)識>
......
......
#endif
<標(biāo)識>在理論上來說可以是自由命名的,但每個頭文件的這個“標(biāo)識”都應(yīng)該是唯一的。標(biāo)識的命名規(guī)則一般是頭文件名全大寫,前后加下劃線,并把文件名中的“.”也變成下劃線,如:
stdio.h
#ifndef _STDIO_H_
#define _STDIO_H_
......
#endif
(BTW:預(yù)編譯有多很有用的功能。你會用預(yù)編譯嗎?)
相關(guān)推薦:2009年9月計算機等級考試成績查詢匯總北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |