硬件開發(fā)人員C語言編程規(guī)范_第1頁
硬件開發(fā)人員C語言編程規(guī)范_第2頁
硬件開發(fā)人員C語言編程規(guī)范_第3頁
硬件開發(fā)人員C語言編程規(guī)范_第4頁
硬件開發(fā)人員C語言編程規(guī)范_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、1排版風格1-1:程序塊要采用縮進風格編寫,縮進的空格數為4個。1-2:相對獨立的程序塊之間或for、if> do、while> switch等語句前后應加一空行。示例:如下例子不符合規(guī)范。例一:if (!valid_ni(ni)./ program coderepssn_ind = ssn_dataindexrepssn_index;repssn_ni = ssn_dataindex.ni;例二:char *pcontext;int nlndex;long icounter;pcontext = new (cstring); if (pcontext = null)return

2、false;應如下書寫例一:if (!valid_ni(ni) / program coderepssn_ind = ssn_dataindex.repssn_index; repssn_ni = ssn_dataindex.ni;例二:char *pcontext;int nlndex;long icounter;pcontext = new (cstring);if (pcontext = null)return false;1- 3:不允許把多個短語句寫在一行中,即一行只寫一條語句。示例:如下例子不符合規(guī)范。rect.length = 0; rect.width = 0;應如下書寫rec

3、t.length = 0;rect.width = 0;1- 4: ifx for> do、while> case、switch、default等語句自占一行,且if、for、do、wh訂e等語句的執(zhí)行語句部分無論多少都要加括號。示例:如下例子不符合規(guī)范。if (pusercr = null) return;應如下書寫:if (pusercr = null)return;1- 5:對齊只使用空格鍵,不使用tab鍵。說明:以免用不同的編輯器閱讀程序時,因tab鍵所設置的空格數目不同而造成程序布局 不整齊。1- 6:函數或過程的開始、結構的定義及循環(huán)、判斷等語句中的代碼都要釆用縮進風格

4、,case 語句下的情況處理語句也要遵從語句縮進要求。1- 7:程序塊的分界符(如c/c+語言的大括號''和'')應各獨占一行并且位于同一列, 同時與引用它們的語句左對齊。在函數體的開始、類的定義、結構的定義、枚舉的定義 以及if、for、do、while> switch> case語句中的程序都要采用如上的縮進方式。示例:如下例子不符合規(guī)范。for (. . .)./ program codeif (.) / program codevoid example_fun( void )./ program code應如下書寫。for (.). / pr

5、ogram codeif (). / program codevoid example_fun( void ). / program code1- 8:在兩個以上的關鍵字、變量、常量進行對等操作時,它們之間的操作符之前、之后或者 前后要加空格;進行非對等操作時,如果是關系密切的立即操作符(如一>),后不應加 空格。說明:采用這種松散方式編寫代碼的目的是使代碼更加清晰。由于留空格所產生的清晰性是相對的,所以,在已經非常清晰的語句中沒有必要再留空格, 如果語句已足夠清晰則括號內側(即左括號后面和右括號前面)不需要加空格,多重括號間 不必加空格,因為在c/c+ +語言中括號己經是最清晰的標志了

6、。在長語句中,如果需要加的空格非常多,那么應該保持整體清晰,而在局部不加空格。給 操作符留空格時不要連續(xù)留兩個以上空格。示例:(1) 逗號、分號只在后面加空格。int a, b, c;(2) 比較操作符,賦值操作符” =”、”+= “,算術操作符”+ ”、“”,邏輯操作符”&&”、”&”,位域操作符”<<”、等雙目操作符的前后加空格。if (curren>= max_time_value)a = b + c;a *= 2;a = b a 2;(3)n”+”、”一”、”&”(地址運算符)等單目操作符前后不加空格。*p = 1 a 1;/內容操作r

7、”與內容之間flag = jisempty; /非操作與內容之間p = &mem;/地址操作”&”與內容之間i+ + ;/ fl+ n 11與內容z間(4)仁” "前后不加空格。p->id = pid; /指針前后不加空格(5) if for while、switch等與后面的括號間應加空格,使if等關鍵字更為突出. 明顯cif (a >= b && c > d) 1-8:對結構成員賦值或有連續(xù)多條賦值語句時,等號對齊。1-9: #define的各個字段對齊。以下示例不符合規(guī)范#define max_task_number 100#d

8、efine left_x 10#define bottom_y 400應書寫成:#definemax_task_number100#defineleft_x10#definebottom_y4002標識符命名2- 1:標識符的命名要清晰、明了,有明確含義,同時使用完整的單詞或大家基本可以理解的 縮寫,避免使人產生誤解。標識符應采用英文單詞或組合,切忌采用拼音來命名。說明:較短的單詞可通過去掉“元音”形成縮寫;較長的單詞可取單詞的頭兒個字母形成 縮寫;一些單詞有大家公認的縮寫。示例:temp可縮寫為 tmp ;flag可縮寫為fig ;2- 2:對于變量命名,禁止取單個字符(如i、j、k.),建

9、議除了要有具體含義外,還能表 明其變量類型、數據類型等,但i、j、k作局部循環(huán)變量是允許的。說明:變量,尤其是局部變量,如果用單個字符表示,很容易敲錯(如i寫成j),而編 譯時又檢查不出來,有可能為了這個小小的錯誤而花費大量的查錯時間。示例:下面所示變量名的定義方法可以借鑒。int li_demowidth;long gl_demowidth;demo_stru stru_demo;其變量名解釋如下:1局部變量g 全局變量stru 結構i數據類型(interger)2- 3:定義類型和宏定義常數以大寫字母命名,各單詞之間用下劃線隔開。2- 4:對于指針的定義必須以小寫的“p”開頭,符號必須緊靠

10、與變量名。2- 5:命名規(guī)范必須在同一項目中統(tǒng)一,比如采用全小寫加下劃線的風格或大小寫混排的方式, 不要使用大小寫與下劃線混排的方式,用作特殊標識如標識成員變量或全局變量的m_和 g_,其后加上大小寫混排的方式是允許的。示例: add_user 不允許,add_user> adduser> m_adduser 允許。2- 6:自己特有的命名風格,要自始至終保持一致,不可來回變化。說明:個人的命名風格,在符合所在項冃組或產品組的命名規(guī)則的前提下,才可使用。(即命名規(guī)則中沒冇規(guī)定到的地方才可冇個人命名風格)。3可靠性、可維護性3-1:具有文件作用域的對象盡量聲名為static。3- 2

11、:顯示地給出函數的返回值類型,無返回值函數定義為voido說明:c、c+語言的編譯系統(tǒng)默認無顯示返回值函數的返回值類型為int。3- 3:聲明函數原型時給出參數名稱和類型,并且與實現此函數時的參數名稱、類型保持一致,無參數的函數,用void聲明。示例:下面聲明不正確。int checkdata ();int setpoint( int, int );應改為如下聲明:int checkdata ( void );int setpoint( int xz int y );3-4:任何if. .else if語句,最后必須有一個收尾的else。說明:對不期望的情況(包括異常情況)進行處理,保證程序邏

12、輯嚴謹。3-5:不管有沒有無效分支,switch函數一定要defaut這個分支。說明:對不期望的情況(包括異常情況)進行處理,保證程序邏輯嚴謹。3-6:每個case語句的結尾不要忘了加break,否則將導致多個分支重疊。3- 7:注意運算符的優(yōu)先級,并用括號明確表達式的操作順序,避免使用默認優(yōu)先級。不允許使用復雜的操作符組合。3- 8:使用宏定義表達式時,要使用完備的括號。示例:如下的宏定義表達式都存在一定的隱患。#define rec_area(a, b) a * b#define rec_area(m, b) (a * b)正確的定義為:#define rec_area(“ b) (a)

13、* (b)3- 9:在邏輯表達式中使用明確的邏輯判斷。示例:如下邏輯表達式不規(guī)范。(1) if ( strlen(strname)(2) for ( index = max_ssn_numeer; index ; index )(3) while ( p && *p ) /假設p為寧符指針應改為如下:(1) if ( strlen(strname) != 0 )(2) for ( index = max_ssn_number; index != 0 ; index -)(3) while ( (p != null) &&(*p != *0 * )3- 10:語句嵌套層次不得超過5層。說明:嵌套層次太多,增加了代碼的復雜度及測試的難度,容易出錯,增加代碼維護 的難度。3-11:用sizeof來確定結構、聯合或變量占用的空間。說明:這樣可提高程序的可讀性、可維護性,同時也增加了程序的可移植性4效率4- 1:使用自加、自減指令說明:通常使用自加、自減指令和復合賦值表達式(如=1及等)都能夠生成 高質量的程序代碼,編譯器通常都能夠生成inc和dec之

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論