資料介紹
Ⅰ 寫在前面
不知道大家有沒有這樣的感受:看到不規(guī)范(雜亂差)的代碼,瞬間就沒有看下去的欲望了。
相信大家看到標(biāo)題都應(yīng)該能明白編程的規(guī)范及原則對(duì)于每一個(gè)軟件開發(fā)的工程師來說是多么重要。
初學(xué)者編寫測(cè)試程序、小的模塊程序也許不能感受它的重要性;但有經(jīng)驗(yàn)及大型項(xiàng)目開發(fā)的人就知道程序的規(guī)范性對(duì)他們來說是有多么的重要。
Ⅱ 關(guān)于編程規(guī)范及原則
編程規(guī)范也就是編寫出簡(jiǎn)潔、可維護(hù)、可靠、可測(cè)試、高效、可移植的代碼,提高產(chǎn)品代碼的質(zhì)量。
本文針對(duì)嵌入式,主要結(jié)合C語(yǔ)言編程的規(guī)范給大家講述。
1. 頭文件
對(duì)于C語(yǔ)言來說,頭文件的設(shè)計(jì)體現(xiàn)了大部分的系統(tǒng)設(shè)計(jì),不合理的頭文件布局是編譯時(shí)間過長(zhǎng)的原因。
有很多人將工程中所有的頭文件包含在一個(gè)include.h文件中,然后在每一個(gè).c源代碼文件中包含include.h頭文件,這樣做可以讓代碼看上去簡(jiǎn)潔,但實(shí)際忽視了編譯效率問題,而且代碼的可移植性也不好。
原則:
A. 頭文件中適合放置接口的聲明,不適合放置實(shí)現(xiàn);
B. 頭文件應(yīng)當(dāng)職責(zé)單一;
C. 頭文件應(yīng)向穩(wěn)定的方向包含。
規(guī)則:
A. 每一個(gè).c文件應(yīng)有一個(gè)同名.h文件,用于聲明需要對(duì)外公開的接口;
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. 一個(gè)模塊通常包含多個(gè).c文件,建議放在同一個(gè)目錄下,目錄名即為模塊名。為方便外部使用者,建議每一個(gè)模塊提供一個(gè).h,文件名為目錄名;
B. 如果一個(gè)模塊包含多個(gè)子模塊,則建議每一個(gè)子模塊提供一個(gè)對(duì)外的.h,文件名為子模塊名(降低接口使用者的編寫難度);
C. 頭文件不要使用非習(xí)慣用法的擴(kuò)展名,如.inc;
D. 同一產(chǎn)品統(tǒng)一包含頭文件排列方式。
2. 函數(shù)
函數(shù)設(shè)計(jì)的要點(diǎn):編寫整潔的函數(shù),同時(shí)把代碼有效組織起來。
函數(shù)整潔的要求:代碼簡(jiǎn)單直接、不隱藏設(shè)計(jì)者的意圖、用干凈利落的抽象和直截了當(dāng)?shù)目刂普Z(yǔ)句將函數(shù)有機(jī)組織起來。
原則:
A. 一個(gè)函數(shù)僅完成一件功能;
B. 重復(fù)代碼應(yīng)該盡可能提煉成函數(shù).
規(guī)則:
A. 避免函數(shù)過長(zhǎng),新增函數(shù)不超過100行(非空非注釋行);
B. 避免函數(shù)的代碼塊嵌套過深,新增函數(shù)的代碼塊嵌套不超過4層;
C. 可重入函數(shù)應(yīng)避免使用共享變量;若需要使用,則應(yīng)通過互斥手段(關(guān)中斷、信號(hào)量)對(duì)其加以保護(hù);
D. 對(duì)參數(shù)的合法性檢查,由調(diào)用者負(fù)責(zé)還是由接口函數(shù)負(fù)責(zé),應(yīng)在項(xiàng)目組/模塊內(nèi)應(yīng)統(tǒng)一規(guī)定;
E. 對(duì)函數(shù)的錯(cuò)誤返回碼要全面處理;
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ù)個(gè)數(shù)不超過5個(gè);
E. 除打印類函數(shù)外,不要使用可變長(zhǎng)參函數(shù);
F. 在源文件范圍內(nèi)聲明和定義的所有函數(shù),除非外部可見,否則應(yīng)該增加static關(guān)鍵字。
3. 標(biāo)識(shí)符命名與定義
程序命名是一個(gè)關(guān)鍵,如果命名不規(guī)范,自己寫的代碼,時(shí)間長(zhǎng)了恐怕連自己都不知道是什么意思了。
3.1通用命名規(guī)則
常見命名風(fēng)格:
A. 用下劃線?_?分割,如text_mutex;
B. 大小寫字母混用,如ReadRFCText。
規(guī)則:
A. 標(biāo)識(shí)符的命名要清晰、明了,有明確含義,同時(shí)使用完整的單詞或大家基本可以理解的縮寫,避免使人產(chǎn)生誤解;
B. 除了常見的通用縮寫以外,不使用單詞縮寫,不得使用漢語(yǔ)拼音;
C. 產(chǎn)品/項(xiàng)目組內(nèi)部應(yīng)保持統(tǒng)一的命名風(fēng)格.
建議:
A. 用正確的反義詞組命名具有互斥意義的變量或相反動(dòng)作的函數(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個(gè)易操作的技巧資料下載
- 如何成為高級(jí)嵌入式工程師?資料下載
- 如何快速熟練掌握嵌入式開發(fā)嵌入式開發(fā)工程師需要做哪些事情
- 嵌入式開發(fā)中CPU大端和小端模式的詳細(xì)資料和程序分析講解
- 嵌入式開發(fā)Linux網(wǎng)絡(luò)編程培訓(xùn)資料的詳細(xì)資料免費(fèi)下載 34次下載
- fpga是嵌入式開發(fā)嗎 1103次閱讀
- 嵌入式開發(fā)的產(chǎn)品有哪些_嵌入式開發(fā)的流程 1.1w次閱讀
- 英創(chuàng)信息技術(shù)關(guān)于嵌入式工程師建議 1727次閱讀
- 詳細(xì)盤點(diǎn)工程師嵌入式開發(fā)必備工具讓工作事半功倍 5737次閱讀
- 嵌入式系統(tǒng)的七個(gè)開發(fā)技巧資料合集 3099次閱讀
- 為什么說嵌入式開發(fā)比單片機(jī)要難很多? 5747次閱讀
- 嵌入式軟件開發(fā)編程規(guī)范及原則 6765次閱讀
- 嵌入式開發(fā)好學(xué)嗎_嵌入式開發(fā)職業(yè)發(fā)展方向是什么 9207次閱讀
- 嵌入式軟件工程師和嵌入式硬件工程師有什么區(qū)別 7.1w次閱讀
- 學(xué)嵌入式開發(fā)難嗎_學(xué)好嵌入式開發(fā)需要多久 1.5w次閱讀
- 學(xué)嵌入式開發(fā)入門_學(xué)嵌入式開發(fā)需要看哪些書籍 2.5w次閱讀
- 成為一個(gè)正式的嵌入式開發(fā)工程師,需要知道的嵌入式系統(tǒng)開發(fā)7大技巧 1w次閱讀
- 嵌入式開發(fā)環(huán)境的搭建 8550次閱讀
- 嵌入式開發(fā)就業(yè)前景分析_嵌入式領(lǐng)域的職業(yè)發(fā)展方向 1.8w次閱讀
- 工程師視角:學(xué)習(xí)嵌入式的十三個(gè)重要法則 1464次閱讀
下載排行
本周
- 1電子電路原理第七版PDF電子教材免費(fèi)下載
- 0.00 MB | 1491次下載 | 免費(fèi)
- 2單片機(jī)典型實(shí)例介紹
- 18.19 MB | 95次下載 | 1 積分
- 3S7-200PLC編程實(shí)例詳細(xì)資料
- 1.17 MB | 27次下載 | 1 積分
- 4筆記本電腦主板的元件識(shí)別和講解說明
- 4.28 MB | 18次下載 | 4 積分
- 5開關(guān)電源原理及各功能電路詳解
- 0.38 MB | 11次下載 | 免費(fèi)
- 6100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 7基于單片機(jī)和 SG3525的程控開關(guān)電源設(shè)計(jì)
- 0.23 MB | 4次下載 | 免費(fèi)
- 8基于AT89C2051/4051單片機(jī)編程器的實(shí)驗(yàn)
- 0.11 MB | 4次下載 | 免費(fèi)
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 2PADS 9.0 2009最新版 -下載
- 0.00 MB | 66304次下載 | 免費(fèi)
- 3protel99下載protel99軟件下載(中文版)
- 0.00 MB | 51209次下載 | 免費(fèi)
- 4LabView 8.0 專業(yè)版下載 (3CD完整版)
- 0.00 MB | 51043次下載 | 免費(fèi)
- 5555集成電路應(yīng)用800例(新編版)
- 0.00 MB | 33562次下載 | 免費(fèi)
- 6接口電路圖大全
- 未知 | 30320次下載 | 免費(fèi)
- 7Multisim 10下載Multisim 10 中文版
- 0.00 MB | 28588次下載 | 免費(fèi)
- 8開關(guān)電源設(shè)計(jì)實(shí)例指南
- 未知 | 21539次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935053次下載 | 免費(fèi)
- 2protel99se軟件下載(可英文版轉(zhuǎn)中文版)
- 78.1 MB | 537793次下載 | 免費(fèi)
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費(fèi)
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234313次下載 | 免費(fèi)
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費(fèi)
- 6電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191183次下載 | 免費(fèi)
- 7十天學(xué)會(huì)AVR單片機(jī)與C語(yǔ)言視頻教程 下載
- 158M | 183277次下載 | 免費(fèi)
- 8proe5.0野火版下載(中文版免費(fèi)下載)
- 未知 | 138039次下載 | 免費(fèi)
評(píng)論