c語(yǔ)言編程規(guī)約_第1頁(yè)
c語(yǔ)言編程規(guī)約_第2頁(yè)
c語(yǔ)言編程規(guī)約_第3頁(yè)
c語(yǔ)言編程規(guī)約_第4頁(yè)
c語(yǔ)言編程規(guī)約_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、文檔編號(hào)產(chǎn)品版本密級(jí)V1.0保密產(chǎn)品名稱:C語(yǔ)百編程規(guī)約(內(nèi)部使用)擬制:日期:審核:日期:審核:日期:批準(zhǔn):日期:修訂記錄日期修訂版本描述作者前言編程規(guī)約應(yīng)建立與一項(xiàng)工程支出,且該規(guī)約應(yīng)貫穿整個(gè)工程之始終。采用一些規(guī)約有助于提供勞動(dòng)生產(chǎn)率,并使團(tuán)隊(duì)工程軟件便于維護(hù)。慣用的、號(hào)的書(shū)寫(xiě)風(fēng)格以及他人用的一些好方法??梢赃_(dá)到以下目的:可移植性好兼容性好干凈整齊易維護(hù)性好易看懂簡(jiǎn)明扼要無(wú)論采用什么樣的編程風(fēng)格,必須在整個(gè)工程中采用始終如一的格式。對(duì)于一項(xiàng)大工程的整個(gè)團(tuán)隊(duì)建議使用同一的編程風(fēng)格。所以,本團(tuán)隊(duì)試用一下C語(yǔ)言編程規(guī)約來(lái)規(guī)范程序的書(shū)寫(xiě)方法。采用共同的編寫(xiě)風(fēng)格,可以少發(fā)生一些程序維護(hù)中令人頭痛的

2、事情,降低維護(hù)成本;采用統(tǒng)一的書(shū)寫(xiě)方法有助于避免代碼的重復(fù)編寫(xiě)。C源代碼的寬度限制在80個(gè)字符。使用Fixedsys字體9號(hào)字。源代碼超出部分需要將源代碼分成兩行書(shū)寫(xiě)且將注釋書(shū)寫(xiě)于頭上。除了必要的英文外,本團(tuán)隊(duì)約定所有注釋一律使用中文。不得使用英文及其它語(yǔ)言。新來(lái)的團(tuán)隊(duì)人員在編寫(xiě)代碼前應(yīng)先認(rèn)真閱讀本規(guī)約。以便快速了解和掌握本關(guān)于軟件編寫(xiě)規(guī)范。一、文件頭以下是C語(yǔ)言程序的文件頭。公司的名稱和地址可寫(xiě)在前幾行;然后是標(biāo)題,標(biāo)出文件的主題內(nèi)容;接著是著作權(quán)聲明,以表明軟件的專有權(quán)。然后是關(guān)于侵權(quán)的警告說(shuō)明及購(gòu)買(mǎi)本軟件的聯(lián)系方式。1mmmm*XXXXXXXX有限公司CNuOS實(shí)時(shí)操作系統(tǒng)*此文件屬于C

3、N_uOS實(shí)時(shí)操作系統(tǒng)的一個(gè)子文件,XXXXXXXX有限公司對(duì)其有所有版*權(quán)及保留意見(jiàn)。任何復(fù)制和發(fā)布本軟件的公司及個(gè)人,我們將對(duì)其追究最終法律責(zé)任。*需要使用部分或全部軟件代碼的公司及個(gè)人需同XXXXXXXX有限公司聯(lián)系。*網(wǎng)址:*文件名:*版本:*描述:*作者:*日期:*函數(shù)列表:*/二、文件包含應(yīng)用工程需要的頭文件緊跟在版本變更記錄的后面。本團(tuán)隊(duì)約定將所有頭文件包含在一個(gè)名為includes.h的頭文件中。除了因要發(fā)布為庫(kù)的頭文件外,所有的應(yīng)用程序頭文件都應(yīng)遵循此約定,不得例外。文件包行的注釋格式為:/*頭文件*/二、標(biāo)志符命名法變量名申明應(yīng)該是每行一個(gè)變量,而不要在一行中聲明多個(gè)變量,

4、這樣易于給每一個(gè)變量加上注釋。形式參數(shù):在函數(shù)中應(yīng)只用小寫(xiě)字母自動(dòng)變量名:應(yīng)只用小寫(xiě)字母靜態(tài)變量和函數(shù):應(yīng)使用文件名或模塊名(或部分文件名、模塊名)為前綴。大小寫(xiě)字母混用。外部變量和函數(shù):應(yīng)使用文件名或模塊名(或部分文件名、模塊名)為前綴。大小寫(xiě)字母混用。四、縮寫(xiě)、略語(yǔ)及助記符在給變量和函數(shù)等標(biāo)志符命名時(shí)可以使用縮寫(xiě)、略語(yǔ)及助劑符。使用縮寫(xiě)可以使較少的字符描述標(biāo)志符。但容易引起混亂和誤解。為保證其正確性。團(tuán)隊(duì)要求,在每個(gè)工程項(xiàng)中應(yīng)使用一張助記詞表作為說(shuō)明。以便查閱。一本有效的詞典對(duì)于一個(gè)團(tuán)隊(duì)來(lái)說(shuō)可以提供勞動(dòng)生產(chǎn)率。不僅是在單獨(dú)的程序中,應(yīng)在整個(gè)工程項(xiàng)目中始終保持前后一致。助記表格式如下:縮寫(xiě)、

5、略語(yǔ)及助劑符含義AddrAddressBlkBlock#include“includes.h五、注解如果代碼與注解混在一起,就會(huì)很難閱讀;因此,不混合編寫(xiě)代碼和注解,注解應(yīng)寫(xiě)在C代碼的右邊。當(dāng)需要將注解寫(xiě)的較長(zhǎng)時(shí),以函數(shù)描述注解塊的形式來(lái)寫(xiě)。團(tuán)隊(duì)規(guī)定。每個(gè)函數(shù)前都應(yīng)加函數(shù)描述塊來(lái)描述。每行代碼都必須加注釋。公司規(guī)定在C中,除了注解和文件頭等大型說(shuō)明外,行注釋一律使用來(lái)注釋而不用/*/注釋方式。函數(shù)描述塊格式:/*名:* 函數(shù)功能:* 輸入?yún)?shù):* 輸出參數(shù):* 作者:* 日期:* 修改者:* 修改日期:*/六、數(shù)據(jù)類(lèi)型C語(yǔ)言允許使用typedef關(guān)鍵字定義新的數(shù)據(jù)類(lèi)型。公司規(guī)定將使用下列數(shù)據(jù)類(lèi)

6、型重定義C語(yǔ)言中標(biāo)準(zhǔn)數(shù)據(jù)類(lèi)型來(lái)統(tǒng)一規(guī)范。/*數(shù)據(jù)類(lèi)型*/typedefunsignedcharI8B;/布爾型typedefunsignedcharI8U;/8位無(wú)符號(hào)型typedefcharI8S;/8位用符號(hào)型typedefunsignedintI16U;/16位無(wú)符號(hào)型typedefintI16S;/16位后符號(hào)型typedefunsignedlongI32U;/32位無(wú)符號(hào)型typedeflongI32S;/32位后符號(hào)型typedeffloatFP;/浮點(diǎn)數(shù)結(jié)構(gòu)體s_聯(lián)合體u_枚舉體e_函數(shù)f_I8Uuc_I8Ssc_I16Uus_I16Sss_I32Uui_I32Ssi_FP32f

7、t_FP64de_數(shù)組ay_指針p_宏定義m_全局變量_X局部變量_x七、縮進(jìn)格式縮進(jìn)格式是表達(dá)函數(shù)流程的重要手段。本文使用TAB鍵來(lái)縮進(jìn),值得注意的是不同的編輯軟件對(duì)TAB鍵的定義不一樣。公司規(guī)定使用TAB鍵作為縮進(jìn),TAB=4個(gè)空格鍵八、語(yǔ)句和書(shū)寫(xiě)格式語(yǔ)句和表達(dá)式應(yīng)在一行中寫(xiě)完,超出部分可使用符鏈接到下一段書(shū)寫(xiě)但必須對(duì)其與原句。公司規(guī)定每個(gè)必須獨(dú)立占用一行。對(duì)于賦值語(yǔ)句必須按列對(duì)齊。九、結(jié)構(gòu)、聯(lián)合、枚舉結(jié)構(gòu)定義需用typedef定義的,可用一個(gè)標(biāo)志符名代表整個(gè)結(jié)構(gòu)。結(jié)構(gòu)類(lèi)型的申明一律使用大小寫(xiě)混和。typedefstructSYS_RAM定義RAM結(jié)構(gòu)I8ULineW;/定義線寬I8ULi

8、neH;/定義線高Sys_Ram;SYS_Ramsys_ram;/定義RAM結(jié)構(gòu)typedefstructSYS_ROM/定義ROM結(jié)構(gòu)I8Utype;/定義類(lèi)型Sys_Rom;公司規(guī)定使用位域+宏定義來(lái)定義位變量。typedefstructunsignedcharb7:1;unsignedcharb6:1;unsignedcharb5:1;unsignedcharb4:1;unsignedcharb3:1;unsignedcharb2:1;unsignedcharb1:1;unsignedcharb0:1;BYTE_FIELD;typedefstructunsignedintb15:1;un

9、signedintb14:1;unsignedintb13:1;unsignedintb12:1;unsignedintb11:1;unsignedintb10:1;unsignedintb9:1;unsignedintb8:1;unsignedintb7:1;unsignedintb6:1;unsignedintb5:1;unsignedintb4:1;unsignedintb3:1;unsignedintb2:1;unsignedintb1:1;unsignedintb0:1;WORD16_FIELD;typedefunionunsignedcharbyte;BYTE_FIELDbit;T

10、YPE_BYTE;typedefunionunsignedintword;unsignedcharbyte2;WORD_FIELD16bit;TYPE_WORD16;公司規(guī)定當(dāng)一個(gè)宏定義為一個(gè)結(jié)構(gòu)時(shí),須使用枚舉類(lèi)型進(jìn)行定義。typedefenumLOW,HIGHe_LevelState;/電平狀態(tài)十、指針公司規(guī)定使用在對(duì)函數(shù)傳值調(diào)用時(shí),優(yōu)先使用指針結(jié)構(gòu)。指針規(guī)范詳請(qǐng)見(jiàn)C語(yǔ)言。公司規(guī)定規(guī)定使用函數(shù)指針進(jìn)行數(shù)據(jù)封裝。應(yīng)大部分C中未對(duì)此進(jìn)行詳細(xì)講解。故在此對(duì)函數(shù)指針的特殊用法進(jìn)行講解。以便公司成員可以在程序中使用和閱讀此類(lèi)型時(shí)不會(huì)陌生。同時(shí)在公司編寫(xiě)的驅(qū)動(dòng)庫(kù)中間大量使用此結(jié)構(gòu)。詳請(qǐng)見(jiàn),B&B嵌入式軟件開(kāi)發(fā)規(guī)范#includetypedefvoid(*pfn)(void);typedefunionpfnfirst;int(*ifn)(inta,intb);void(*vfn)(int,int);msg;intOnInt(inta,intb)printf(a=%d,b=%drn,a,b);returna;voidOnVoid(inta,intb)printf

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論