單片機(jī)C51編程規(guī)范
8.6 switch語句
l 每個(gè)case和其判據(jù)條件獨(dú)占一行。
l 每個(gè)case程序塊需用break結(jié)束。特殊情況下需要從一個(gè)case塊順序執(zhí)行到下一個(gè)case塊的時(shí)候除外,但需要在交界處明確注釋如此操作的原因,以防止出錯(cuò)。
l case程序塊之間空一行,且只空一行。
l 每個(gè)case程序塊的執(zhí)行語句保持4個(gè)空格的縮進(jìn)。
l 一般情況下都應(yīng)該包含default分支。
Switch ( )
{
case x:
break;
case x:
break;
default:
break;
}
9 單片機(jī)C51編程規(guī)范-程序結(jié)構(gòu)
9.1 基本要求
l 有main()函數(shù)的.c文件應(yīng)將main()放在最前面,并明確用void聲明參數(shù)和返回值。
l 對(duì)由多個(gè).c文件組成的模塊程序或完整監(jiān)控程序,建立公共引用頭文件,將需要引用的庫(kù)頭文件、標(biāo)準(zhǔn)寄存器定義頭文件、自定義的頭文件、全局變量等均包含在內(nèi),供每個(gè)文件引用。通常,標(biāo)準(zhǔn)函數(shù)庫(kù)頭文件采用尖角號(hào) >標(biāo)志文件名,自定義頭文件采用雙撇號(hào)″″標(biāo)志文件名。
l 每個(gè).c文件有一個(gè)對(duì)應(yīng)的.h文件,.c文件的注釋之后首先定義一個(gè)唯一的文件標(biāo)志宏,并在對(duì)應(yīng)的.h文件中解析該標(biāo)志。
在.c文件中:
#define FILE_FLAG
在.h文件中:
#ifdef FILE_FLAG
#define XXX
#else
#define XXX extern
#endif
l 對(duì)于確定只被某個(gè).c文件調(diào)用的定義可以單獨(dú)列在一個(gè)頭文件中、單獨(dú)調(diào)用。
9.2 可重入函數(shù)
可重入函數(shù)中若使用了全局變量,應(yīng)通過關(guān)中斷、信號(hào)量等操作手段對(duì)其加以保護(hù)。
9.3 函數(shù)的形參
l 由函數(shù)調(diào)用者負(fù)責(zé)檢查形參的合法性。
l 盡量避免將形參作為工作變量使用。
9.4 循環(huán)
l 盡量減少循環(huán)嵌套層數(shù)
l 在多重循環(huán)中,應(yīng)將最忙的循環(huán)放在最內(nèi)層
l 循環(huán)體內(nèi)工作量最小
l 盡量避免循環(huán)體內(nèi)含有判斷語句
評(píng)論