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