單片機(jī)匯編程序編碼規(guī)范
規(guī)則3
頭文件、源文件的頭部,應(yīng)進(jìn)行注釋。注釋必須列出:文件名、作者、目的、功能、修改日志等。
規(guī)則4
函數(shù)頭部應(yīng)進(jìn)行注釋,列出:函數(shù)的目的、功能、輸入?yún)?shù)、輸出參數(shù)、涉及到的通用變量和寄存器、調(diào)用的其他函數(shù)和模塊、修改日志等。對一些復(fù)雜的函數(shù),在注釋中最好提供典型用法。
規(guī)則5
對重要代碼段的功能、意圖進(jìn)行注釋,提供有用的、額外的信息。并在該代碼段的結(jié)束處加一行注釋表示該段代碼結(jié)束。
規(guī)則6
對于所有的常量,變量,數(shù)據(jù)結(jié)構(gòu)聲明(包括數(shù)組、結(jié)構(gòu)、類、枚舉等),如果其命名不是充分自注釋的,在聲明時都必須加以注釋,說明其含義。
規(guī)則 7
維護(hù)代碼時,要更新相應(yīng)的注釋,刪除不再有用的注釋。保持代碼、注釋的一致性,避免產(chǎn)生誤解。
3.命名
規(guī)則 1
標(biāo)識符縮寫
形成縮寫的幾種技術(shù):
1) 去掉所有的不在詞頭的元音字母。如screen寫成scrn, primtive寫成prmv。
2) 使用每個單詞的頭一個或幾個字母。如Channel Activation寫成ChanActiv,Release
Indication寫成RelInd。
3) 使用變量名中每個有典型意義的單詞。如Count of Failure寫成FailCnt。
4) 去掉無用的單詞后綴 ing, ed等。如Paging Request寫成PagReq。
5) 使用標(biāo)準(zhǔn)的或慣用的縮寫形式(包括協(xié)議文件中出現(xiàn)的縮寫形式)。如BSIC(Base Station
Identification Code)、MAP(Mobile Application Part)。
關(guān)于縮寫的準(zhǔn)則:
1) 縮寫應(yīng)該保持一致性。如Channel不要有時縮寫成Chan,有時縮寫成Ch。Length有時縮寫成Len,有時縮寫成len。
2) 在源代碼頭部加入注解來說明協(xié)議相關(guān)的、非通用縮寫。
3) 標(biāo)識符的長度不超過12個字符。
規(guī)則2
變量命名約定:前綴> + 主體 ; 注釋
變量命名要考慮簡單、直觀、不易混淆。
前綴是可選項,表示變量類型,由于匯編中變量多是單字節(jié)變量,所以單字節(jié)變量可以不加前綴,對于bit和雙字節(jié)型變量,使用小寫的b和d作為前綴表示。
主體是必選項,可多個單詞(或縮寫)合在一起,每個單詞首字母大寫,其余部分小寫。
規(guī)則3
常量的命名
常量的命名規(guī)則:單詞的字母全部大寫,各單詞之間用下劃線隔開。
規(guī)則4
函數(shù)的命名
單詞首字母為大寫,其余均為小寫。函數(shù)名應(yīng)以一個動詞開頭,即函數(shù)名應(yīng)類似一個動詞斷語或祈使句。
例如:Test_Protect, Check_EEPROM, Init_Para
4.可維護(hù)性
規(guī)則1
函數(shù)和過程中關(guān)系較為緊密的代碼盡可能相鄰。
規(guī)則2
每個函數(shù)的源程序行數(shù)原則上應(yīng)該少于200行。
對于消息分流處理函數(shù),完成的功能統(tǒng)一,但由于消息的種類多,可能超過200行的限制,不屬于違反規(guī)定。
規(guī)則3
語句嵌套層次不得超過5層。
嵌套層次太多,增加了代碼的復(fù)雜度及測試的難度,容易出錯,增加代碼維護(hù)的難度。
規(guī)則4
避免相同的代碼段在多個地方出現(xiàn)。
當(dāng)某段代碼需在不同的地方重復(fù)使用時,應(yīng)根據(jù)代碼段的規(guī)模大小使用函數(shù)調(diào)用或宏調(diào)用的方式代替。這樣,對該代碼段的修改就可在一處完成,增強(qiáng)代碼的可維護(hù)性。
規(guī)則5
每個函數(shù)完成單一的功能,不設(shè)計多用途面面俱到的函數(shù)。
多功能集于一身的函數(shù),很可能使函數(shù)的理解、測試、維護(hù)等變得困難。使函數(shù)功能明確化,增加程序可讀性,亦可方便維護(hù)、測試。
規(guī)則6
在函數(shù)的項目維護(hù)文檔中,應(yīng)該指出軟件適用的硬件平臺及版本。
建議1
使用專門的初始化函數(shù)對所有的公共變量進(jìn)行初始化。
5.程序正確性、效率
規(guī)則1
嚴(yán)禁使用未經(jīng)初始化的變量。
引用未經(jīng)初始化的變量可能會產(chǎn)生不可預(yù)知的后果,特別是引用未經(jīng)初始化的指針經(jīng)常會導(dǎo)致系統(tǒng)崩潰,需特別注意。
規(guī)則2
防止內(nèi)存操作越界。
說明:內(nèi)存操作越界是軟件系統(tǒng)主要錯誤之一,后果往往非常嚴(yán)重。
規(guī)則3
注意變量的有效取值范圍,防止表達(dá)式出現(xiàn)上溢或下溢。
規(guī)則4
防止易混淆的指令和操作數(shù)拼寫錯誤。
規(guī)則5
避免函數(shù)中不必要語句,防止程序中的垃圾代碼,預(yù)留代碼應(yīng)以注釋的方式出現(xiàn)。
程序中的垃圾代碼不僅占用額外的空間,而且還常常影響程序的功能與性能,很可能給程序的測試、維護(hù)等造成不必要的麻煩。
規(guī)則6
通過對系統(tǒng)數(shù)據(jù)結(jié)構(gòu)的劃分與組織的改進(jìn),以及對程序算法的優(yōu)化來提高空間效率。
這種方式是解決軟件空間效率的根本辦法。
規(guī)則7
循環(huán)體內(nèi)工作量最小化。
應(yīng)仔細(xì)考慮循環(huán)體內(nèi)的語句是否可以放在循環(huán)體之外,使循環(huán)體內(nèi)工作量最小,從而提高程序的時間效率。
評論