全國(guó)計(jì)算機(jī)等級(jí)考試四級(jí)上機(jī)編程修養(yǎng)(下)
6、if 語(yǔ)句對(duì)出錯(cuò)的處理
———————————
先看一段程序代碼吧。
if ( ch >= ’0’ && ch <= ’9’ ){
/* 正常處理代碼 */
}else{
/* 輸出錯(cuò)誤信息 */
printf("error ......n");
return ( FALSE );
}
這種結(jié)構(gòu)很不好,特別是如果“正常處理代碼”很長(zhǎng)時(shí),對(duì)于這種情況,最好不要用else。先判斷錯(cuò)誤,如:
if ( ch < ’0’ || ch > ’9’ ){
/* 輸出錯(cuò)誤信息 */
printf("error ......n");
return ( FALSE );
}
/* 正常處理代碼 */
......
這樣的結(jié)構(gòu),不是很清楚嗎?突出了錯(cuò)誤的條件,讓別人在使用你的函數(shù)的時(shí)候,第一眼就能看到不合法的條件,于是就會(huì)更下意識(shí)的避免。
7、頭文件中的'#ifndef
——————————
千萬(wàn)不要忽略了頭件的中的#ifndef,這是一個(gè)很關(guān)鍵的東西。比如你有兩個(gè)C文件,這兩個(gè)C文件都include了同一個(gè)頭文件。而編譯時(shí),這兩個(gè)C文件要一同編譯成一個(gè)可運(yùn)行文件,于是問題來(lái)了,大量的聲明沖突。
還是把頭文件的內(nèi)容都放在#ifndef和#endif中吧。不管你的頭文件會(huì)不會(huì)被多個(gè)文件引用管你的頭文件會(huì)不會(huì)被多個(gè)文件引用,你都要加上這個(gè)。一般格式是這樣的:
#ifndef <標(biāo)識(shí)>
#define <標(biāo)識(shí)>
......
......
#endif
<標(biāo)識(shí)>在理論上來(lái)說(shuō)可以是自由命名的,但每個(gè)頭文件的這個(gè)“標(biāo)識(shí)”都應(yīng)該是唯一的。標(biāo)識(shí)的命名規(guī)則一般是頭文件名全大寫,前后加下劃線,并把文件名中的“.”也變成下劃線,如:
stdio.h
#ifndef _STDIO_H_
#define _STDIO_H_
......
#endif
(BTW:預(yù)編譯有多很有用的功能。你會(huì)用預(yù)編譯嗎?)
(BTW:預(yù)編譯有多很有用的功能。你會(huì)用預(yù)編譯嗎?) http://m.ardmore-hotel.com/
【全國(guó)計(jì)算機(jī)等級(jí)考試四級(jí)上機(jī)編程修養(yǎng)(下)】相關(guān)文章:
全國(guó)計(jì)算機(jī)等級(jí)考試四級(jí)上機(jī)編程修養(yǎng)10-09
全國(guó)計(jì)算機(jī)等級(jí)考試四級(jí)上機(jī)編程修養(yǎng)(上)10-09
全國(guó)計(jì)算機(jī)等級(jí)考試四級(jí)上機(jī)編程修養(yǎng)(中)10-09
全國(guó)計(jì)算機(jī)等級(jí)考試四級(jí)上機(jī)編程題型二10-09
全國(guó)計(jì)算機(jī)等級(jí)考試四級(jí)上機(jī)編程題型一10-09
全國(guó)計(jì)算機(jī)四級(jí)等級(jí)考試上機(jī)題10-09
2002年全國(guó)計(jì)算機(jī)等級(jí)考試四級(jí)考試上機(jī)題10-09