資料介紹
Ⅰ 寫在前面
不知道大家有沒有這樣的感受:看到不規(guī)范(雜亂差)的代碼,瞬間就沒有看下去的欲望了。
相信大家看到標(biāo)題都應(yīng)該能明白編程的規(guī)范及原則對于每一個軟件開發(fā)的工程師來說是多么重要。
初學(xué)者編寫測試程序、小的模塊程序也許不能感受它的重要性;但有經(jīng)驗(yàn)及大型項(xiàng)目開發(fā)的人就知道程序的規(guī)范性對他們來說是有多么的重要。
Ⅱ 關(guān)于編程規(guī)范及原則
編程規(guī)范也就是編寫出簡潔、可維護(hù)、可靠、可測試、高效、可移植的代碼,提高產(chǎn)品代碼的質(zhì)量。
本文針對嵌入式,主要結(jié)合C語言編程的規(guī)范給大家講述。
1. 頭文件
對于C語言來說,頭文件的設(shè)計(jì)體現(xiàn)了大部分的系統(tǒng)設(shè)計(jì),不合理的頭文件布局是編譯時(shí)間過長的原因。
有很多人將工程中所有的頭文件包含在一個include.h文件中,然后在每一個.c源代碼文件中包含include.h頭文件,這樣做可以讓代碼看上去簡潔,但實(shí)際忽視了編譯效率問題,而且代碼的可移植性也不好。
原則:
A. 頭文件中適合放置接口的聲明,不適合放置實(shí)現(xiàn);
B. 頭文件應(yīng)當(dāng)職責(zé)單一;
C. 頭文件應(yīng)向穩(wěn)定的方向包含。
規(guī)則:
A. 每一個.c文件應(yīng)有一個同名.h文件,用于聲明需要對外公開的接口;
B. 禁止頭文件循環(huán)依賴;
C. .c/.h文件禁止包含用不到的頭文件;
D. 頭文件應(yīng)當(dāng)自包含;
E. 總是編寫內(nèi)部#include保護(hù)符( #define 保護(hù));
F. 禁止在頭文件中定義變量;
G. 只能通過包含頭文件的方式使用其他.c提供的接口,禁止在.c中通過extern的方式使用外部函數(shù)接口、變量;
H. 禁止在extern "C"中包含頭文件。
建議:
A. 一個模塊通常包含多個.c文件,建議放在同一個目錄下,目錄名即為模塊名。為方便外部使用者,建議每一個模塊提供一個.h,文件名為目錄名;
B. 如果一個模塊包含多個子模塊,則建議每一個子模塊提供一個對外的.h,文件名為子模塊名(降低接口使用者的編寫難度);
C. 頭文件不要使用非習(xí)慣用法的擴(kuò)展名,如.inc;
D. 同一產(chǎn)品統(tǒng)一包含頭文件排列方式。
2. 函數(shù)
函數(shù)設(shè)計(jì)的要點(diǎn):編寫整潔的函數(shù),同時(shí)把代碼有效組織起來。
函數(shù)整潔的要求:代碼簡單直接、不隱藏設(shè)計(jì)者的意圖、用干凈利落的抽象和直截了當(dāng)?shù)目刂普Z句將函數(shù)有機(jī)組織起來。
原則:
A. 一個函數(shù)僅完成一件功能;
B. 重復(fù)代碼應(yīng)該盡可能提煉成函數(shù).
規(guī)則:
A. 避免函數(shù)過長,新增函數(shù)不超過100行(非空非注釋行);
B. 避免函數(shù)的代碼塊嵌套過深,新增函數(shù)的代碼塊嵌套不超過4層;
C. 可重入函數(shù)應(yīng)避免使用共享變量;若需要使用,則應(yīng)通過互斥手段(關(guān)中斷、信號量)對其加以保護(hù);
D. 對參數(shù)的合法性檢查,由調(diào)用者負(fù)責(zé)還是由接口函數(shù)負(fù)責(zé),應(yīng)在項(xiàng)目組/模塊內(nèi)應(yīng)統(tǒng)一規(guī)定;
E. 對函數(shù)的錯誤返回碼要全面處理;
F. 設(shè)計(jì)高扇入,合理扇出(小于7)的函數(shù);
G. 廢棄代碼(沒有被調(diào)用的函數(shù)和變量)要及時(shí)清除。
建議:
A. 函數(shù)不變參數(shù)使用const;
B. 函數(shù)應(yīng)避免使用全局變量、靜態(tài)局部變量和I/O操作,不可避免的地方應(yīng)集中使用;
C. 檢查函數(shù)所有非參數(shù)輸入的有效性,如數(shù)據(jù)文件、公共變量等;
D. 函數(shù)的參數(shù)個數(shù)不超過5個;
E. 除打印類函數(shù)外,不要使用可變長參函數(shù);
F. 在源文件范圍內(nèi)聲明和定義的所有函數(shù),除非外部可見,否則應(yīng)該增加static關(guān)鍵字。
3. 標(biāo)識符命名與定義
程序命名是一個關(guān)鍵,如果命名不規(guī)范,自己寫的代碼,時(shí)間長了恐怕連自己都不知道是什么意思了。
3.1通用命名規(guī)則
常見命名風(fēng)格:
A. 用下劃線?_?分割,如text_mutex;
B. 大小寫字母混用,如ReadRFCText。
規(guī)則:
A. 標(biāo)識符的命名要清晰、明了,有明確含義,同時(shí)使用完整的單詞或大家基本可以理解的縮寫,避免使人產(chǎn)生誤解;
B. 除了常見的通用縮寫以外,不使用單詞縮寫,不得使用漢語拼音;
C. 產(chǎn)品/項(xiàng)目組內(nèi)部應(yīng)保持統(tǒng)一的命名風(fēng)格.
建議:
A. 用正確的反義詞組命名具有互斥意義的變量或相反動作的函數(shù)等;
下載該資料的人也在下載
下載該資料的人還在閱讀
更多 >
- 嵌入式工程師入門的那些事
- 學(xué)習(xí)嵌入式開發(fā)前景問題解答
- 嵌入式開發(fā)教程哪家好?linux嵌入式系統(tǒng)開發(fā)
- 嵌入式工程師培訓(xùn)技能 嵌入式開發(fā)學(xué)什么?
- 成為一名優(yōu)秀的嵌入式開發(fā)工程師有哪些要求?
- 學(xué)習(xí)嵌入式開發(fā)怎么樣?嵌入式開發(fā)工程師的職責(zé)有哪些?
- python做嵌入式開發(fā)_Python和嵌入式的區(qū)別是什么?可以做嵌入式開發(fā)嗎?
- 嵌入式開發(fā)資料免費(fèi)分享
- 嵌入式工程師是如何煉成的
- 嵌入式開發(fā)(一):嵌入式開發(fā)新手入門
- 嵌入式開發(fā)7個易操作的技巧資料下載
- 如何成為高級嵌入式工程師?資料下載
- 如何快速熟練掌握嵌入式開發(fā)嵌入式開發(fā)工程師需要做哪些事情
- 嵌入式開發(fā)中CPU大端和小端模式的詳細(xì)資料和程序分析講解
- 嵌入式開發(fā)Linux網(wǎng)絡(luò)編程培訓(xùn)資料的詳細(xì)資料免費(fèi)下載 35次下載
- fpga是嵌入式開發(fā)嗎 2.2k次閱讀
- 嵌入式開發(fā)的產(chǎn)品有哪些_嵌入式開發(fā)的流程 1.2w次閱讀
- 英創(chuàng)信息技術(shù)關(guān)于嵌入式工程師建議 2.2k次閱讀
- 詳細(xì)盤點(diǎn)工程師嵌入式開發(fā)必備工具讓工作事半功倍 6.5k次閱讀
- 嵌入式系統(tǒng)的七個開發(fā)技巧資料合集 3.6k次閱讀
- 為什么說嵌入式開發(fā)比單片機(jī)要難很多? 6.2k次閱讀
- 嵌入式軟件開發(fā)編程規(guī)范及原則 7.4k次閱讀
- 嵌入式開發(fā)好學(xué)嗎_嵌入式開發(fā)職業(yè)發(fā)展方向是什么 1w次閱讀
- 嵌入式軟件工程師和嵌入式硬件工程師有什么區(qū)別 8.3w次閱讀
- 學(xué)嵌入式開發(fā)難嗎_學(xué)好嵌入式開發(fā)需要多久 1.7w次閱讀
- 學(xué)嵌入式開發(fā)入門_學(xué)嵌入式開發(fā)需要看哪些書籍 3.9w次閱讀
- 成為一個正式的嵌入式開發(fā)工程師,需要知道的嵌入式系統(tǒng)開發(fā)7大技巧 1.1w次閱讀
- 嵌入式開發(fā)環(huán)境的搭建 9.1k次閱讀
- 嵌入式開發(fā)就業(yè)前景分析_嵌入式領(lǐng)域的職業(yè)發(fā)展方向 2w次閱讀
- 工程師視角:學(xué)習(xí)嵌入式的十三個重要法則 1.6k次閱讀
下載排行
本周
- 1MDD品牌三極管MMBT3906數(shù)據(jù)手冊
- 2.33 MB | 次下載 | 免費(fèi)
- 2MDD品牌三極管S9012數(shù)據(jù)手冊
- 2.62 MB | 次下載 | 免費(fèi)
- 3聯(lián)想flex2-14D/15D說明書
- 4.92 MB | 次下載 | 免費(fèi)
- 4收音環(huán)繞擴(kuò)音機(jī) AVR-1507手冊
- 2.50 MB | 次下載 | 免費(fèi)
- 524Pin Type-C連接器設(shè)計(jì)報(bào)告
- 1.06 MB | 次下載 | 免費(fèi)
- 6新一代網(wǎng)絡(luò)可視化(NPB 2.0)
- 3.40 MB | 次下載 | 免費(fèi)
- 7MS1000TA 超聲波測量模擬前端芯片技術(shù)手冊
- 0.60 MB | 次下載 | 免費(fèi)
- 8MS1022高精度時(shí)間測量(TDC)電路數(shù)據(jù)手冊
- 1.81 MB | 次下載 | 免費(fèi)
本月
- 1愛華AIWA HS-J202維修手冊
- 3.34 MB | 37次下載 | 免費(fèi)
- 2PC5502負(fù)載均流控制電路數(shù)據(jù)手冊
- 1.63 MB | 23次下載 | 免費(fèi)
- 3NB-IoT芯片廠商的資料說明
- 0.31 MB | 22次下載 | 1 積分
- 4H110主板CPU PWM芯片ISL95858HRZ-T核心供電電路圖資料
- 0.63 MB | 6次下載 | 1 積分
- 5UWB653Pro USB口測距通信定位模塊規(guī)格書
- 838.47 KB | 5次下載 | 免費(fèi)
- 6技嘉H110主板IT8628E_BX IO電路圖資料
- 2.61 MB | 4次下載 | 1 積分
- 7蘇泊爾DCL6907(即CHK-S007)單芯片電磁爐原理圖資料
- 0.04 MB | 4次下載 | 1 積分
- 8100W準(zhǔn)諧振反激式恒流電源電路圖資料
- 0.09 MB | 2次下載 | 1 積分
總榜
- 1matlab軟件下載入口
- 未知 | 935137次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191439次下載 | 10 積分
- 5十天學(xué)會AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183353次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81602次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73822次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65991次下載 | 10 積分
電子發(fā)燒友App





創(chuàng)作
發(fā)文章
發(fā)帖
提問
發(fā)資料
發(fā)視頻
上傳資料賺積分
評論