◎ 一個函數(shù)僅完成一件功能
◎ 重復(fù)代碼應(yīng)該盡可能提煉成函數(shù)。
說明:重復(fù)代碼提煉成函數(shù)可以帶來維護(hù)成本的降低。重復(fù)代碼是不良代碼最典型的特征之一。在“代碼能用就不改”的指導(dǎo)原則之下,新需求增加帶來的代碼拷貝和修改,隨著時間的遷移,產(chǎn)品中堆砌著許多類似或者重復(fù)的代碼。
◎ 避免遞歸函數(shù)的代碼塊嵌套過深。
◎ 對函數(shù)的錯誤返回碼要全面處理。
說明:一個函數(shù)(標(biāo)準(zhǔn)庫中的函數(shù)/第三方庫函數(shù)/用戶定義的函數(shù))能夠提供一些指示錯誤發(fā)生的方法,可以通過使用錯誤標(biāo)記、特殊的返回?cái)?shù)據(jù)或者其他手段,調(diào)用程序應(yīng)該在函數(shù)返回時立刻檢查錯誤指示。
◎ 廢棄函數(shù)要及時清除
說明:程序中的廢棄代碼不僅占用額外的空間,而且還常常影響程序的功能與性能,很可能給程序的測試、維護(hù)等造成不必要的麻煩。
◎ 函數(shù)傳入的不變參數(shù)使用const限制。
◎ 函數(shù)的參數(shù)個數(shù)不超過5個,檢查輸入?yún)?shù)的有效性。
說明:函數(shù)的參數(shù)過多,會使得該函數(shù)易于受外部(其他部分的代碼)變化的影響,從而影響維護(hù)工作。函數(shù)的參數(shù)過多同時也會增大測試的工作量。函數(shù)的參數(shù)個數(shù)不要超過5個,如果超過了建議拆分為不同函數(shù);函數(shù)的輸入主要有兩種:一種是參數(shù)輸入;另一種是全局變量、數(shù)據(jù)文件的輸入,即非參數(shù)輸入。函數(shù)在使用輸入?yún)?shù)之前,應(yīng)進(jìn)行有效性檢查。
◎ 源文件范圍內(nèi)聲明和定義的所有函數(shù),除非外部可見,否則增加static關(guān)鍵字,針對單元測試的特殊情況,對這類函數(shù)盡量封裝一層再使用。
◎ 傳入?yún)?shù)表意有3種以上的禁止使用魔法數(shù),必須使用枚舉值且附帶注釋。
◎ 函數(shù)內(nèi)部要對參數(shù)的合法性進(jìn)行檢查。
說明:函數(shù)的輸入主要有兩種:一種是參數(shù)輸入;另一種是全局變量、數(shù)據(jù)文件的輸入,即非參數(shù)輸入。函數(shù)在使用輸入?yún)?shù)之前,應(yīng)進(jìn)行有效性檢查。
◎ 除打印類函數(shù)外,不要使用可變長函數(shù)。
說明:可變長參函數(shù)的處理過程比較復(fù)雜容易引入錯誤,而且性能也比較低,使用過多的可變長參函數(shù)將導(dǎo)致函數(shù)的維護(hù)難度大大增加。
◎ 每個函數(shù)都要返回錯誤碼,調(diào)用程序必須在函數(shù)返回時檢查錯誤碼。
◎ 標(biāo)識符的命名要清晰明了,有明確含義,使用完整的單詞,盡量避免名字中出現(xiàn)數(shù)字編號或特殊符號。
◎ 函數(shù)名稱需體現(xiàn)出函數(shù)具體功能,均由功能單詞拼接組成,絕不允許出現(xiàn)中文拼音。
◎ 函數(shù)命名應(yīng)以函數(shù)要執(zhí)行的動作命名,一般采用動詞或者動詞+名詞的結(jié)構(gòu)。
-
嵌入式
+關(guān)注
關(guān)注
5152文章
19675瀏覽量
317678 -
編碼
+關(guān)注
關(guān)注
6文章
969瀏覽量
55788 -
函數(shù)
+關(guān)注
關(guān)注
3文章
4381瀏覽量
64911 -
代碼
+關(guān)注
關(guān)注
30文章
4900瀏覽量
70762
發(fā)布評論請先 登錄
嵌入式c語言編碼規(guī)范
嵌入式c語言編碼規(guī)范
嵌入式Linux C代碼規(guī)范化
基于Chirp函數(shù)的Nios Ⅱ嵌入式實(shí)現(xiàn)

嵌入式系統(tǒng)的規(guī)范發(fā)展回顧
嵌入式代碼之編寫規(guī)范
C嵌入式編程設(shè)計(jì)模式

嵌入式C++編程

嵌入式軟件中的延時函數(shù)

嵌入式系統(tǒng)中函數(shù)如何調(diào)用

嵌入式C語言的結(jié)構(gòu)特點(diǎn)

評論