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è),還剩36頁(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)介

編碼標(biāo)準(zhǔn)整理課件第一局部前言Preface整理課件為什么要這么做?書(shū)寫(xiě)良好的代碼更容易閱讀容易閱讀的代碼才容易被理解容易被理解的代碼才健康編程風(fēng)格表達(dá)了程序員對(duì)語(yǔ)言的理解水平求職:好的編程風(fēng)格給別人良好的第一印象,是獲得高薪的第一步整理課件1.編寫(xiě)目的通過(guò)編程標(biāo)準(zhǔn)的學(xué)習(xí)和強(qiáng)制執(zhí)行,使同學(xué)們從一開(kāi)始就接觸根本的軟件開(kāi)發(fā)思想,了解根本的軟件工程標(biāo)準(zhǔn),養(yǎng)成良好的編程習(xí)慣;為后續(xù)課程的實(shí)踐環(huán)節(jié)和日后實(shí)際工作打下良好的根底;也便于教師批改與回復(fù)電子作業(yè)。執(zhí)行良好的編碼標(biāo)準(zhǔn)可以使編寫(xiě)出來(lái)的程序易于閱讀、理解和管理。整理課件2.編碼標(biāo)準(zhǔn)的定義編碼〔coding〕:是指用適當(dāng)?shù)拇a編寫(xiě)工具編寫(xiě)C語(yǔ)言程序的源代碼編碼標(biāo)準(zhǔn):相關(guān)英文說(shuō)法:codingstandard,codingconvention,codingcriterion是指被普通采用的、或由某個(gè)企業(yè)或機(jī)構(gòu)規(guī)定的,用計(jì)算機(jī)語(yǔ)言編寫(xiě)程序的過(guò)程中需要遵守的一套規(guī)那么或約定的集合編碼標(biāo)準(zhǔn)并不是語(yǔ)言的語(yǔ)法規(guī)那么整理課件3.編碼標(biāo)準(zhǔn)的應(yīng)用在軟件業(yè)高速開(kāi)展、團(tuán)隊(duì)開(kāi)發(fā)成為根本開(kāi)發(fā)模式的今天,幾乎每個(gè)軟件企業(yè)或軟件開(kāi)發(fā)團(tuán)隊(duì)都會(huì)制定各種各樣的標(biāo)準(zhǔn),應(yīng)用于軟件開(kāi)發(fā)過(guò)程的各個(gè)環(huán)節(jié)中,編碼標(biāo)準(zhǔn)是最根底標(biāo)準(zhǔn)之一。不同的公司,對(duì)同一種開(kāi)發(fā)語(yǔ)言,一般都采用類(lèi)似的標(biāo)準(zhǔn),也就是說(shuō)編碼標(biāo)準(zhǔn)具有一些通用性的標(biāo)準(zhǔn)整理課件4.編碼標(biāo)準(zhǔn)的學(xué)習(xí)和執(zhí)行要求學(xué)習(xí)和掌握標(biāo)準(zhǔn)標(biāo)準(zhǔn)要求在本課程的作業(yè)過(guò)程中執(zhí)行這些標(biāo)準(zhǔn),上交的電子作業(yè)必須符合這些標(biāo)準(zhǔn)要求要求在后續(xù)相關(guān)課程中執(zhí)行此標(biāo)準(zhǔn)中的根本局部,并根據(jù)后續(xù)課程內(nèi)容要求執(zhí)行相應(yīng)的擴(kuò)展標(biāo)準(zhǔn)整理課件第二局部C語(yǔ)言編碼標(biāo)準(zhǔn)Codingstandards整理課件1.文件級(jí)模塊說(shuō)明標(biāo)準(zhǔn)Filemodulespecification整理課件文件級(jí)模塊說(shuō)明標(biāo)準(zhǔn)的含義模塊定義:指以獨(dú)立的文件形式存在的模塊,主要包括兩類(lèi)C或C++的擴(kuò)展名為.c或.cpp的源代碼文件模塊,例如abc.cpp,exam.c擴(kuò)展名為.h的頭文件模塊,如abc.h,exam.h對(duì)于任何一個(gè)用戶新建的模塊,必須按標(biāo)準(zhǔn)要求給出模塊的相關(guān)描述信息整理課件文件級(jí)模塊說(shuō)明的構(gòu)成文件級(jí)模塊說(shuō)明至少應(yīng)由以下局部構(gòu)成1.模塊的作者信息2.模塊的版權(quán)聲明3.模塊的名稱4.模塊的摘要描述5.模塊的其它說(shuō)明6.模塊的歷史信息整理課件文件級(jí)模塊說(shuō)明的編寫(xiě)1.每個(gè)用戶的文件級(jí)代碼模塊必須編寫(xiě)一個(gè)說(shuō)明2.模塊說(shuō)明要求以注釋的形式出現(xiàn)在模塊的首部3.為了減少每次的工作,每個(gè)人應(yīng)先編寫(xiě)好不變局部,每新建一個(gè)模塊將不變局部復(fù)制到文件首部,再行更改可變局部整理課件中文版文件級(jí)模塊說(shuō)明標(biāo)準(zhǔn)/****************************************************\作者信息: 姓名:學(xué)號(hào):班級(jí):學(xué)院:Email::版權(quán)聲明:模塊名稱: 本模塊詳細(xì)名稱,不是文件名摘要: 摘要地描述本模塊的功能其它說(shuō)明: 可有可無(wú),有關(guān)本模塊的附加說(shuō)明,這些說(shuō)明可以在以后幫助代碼的閱讀者理解這個(gè)模塊里的內(nèi)容,如:算法的描述,特殊情況,參考資料等模塊歷史: 誰(shuí)于某年某月某日創(chuàng)立本模塊,創(chuàng)立人email 誰(shuí)于某年某月某日修改本模塊,修改人email修改原因:可有可無(wú),根據(jù)需要添加\****************************************************/整理課件例子/****************************************************\作者信息: 姓名:張三學(xué)號(hào):06123456班級(jí):計(jì)科0601班學(xué)院:計(jì)算機(jī)Email:zhangsan@123:51689999版權(quán)聲明: 版權(quán)由張三所有,除老師外,未經(jīng)允許不得拷貝本人作業(yè)模塊名稱:第一個(gè)模塊摘要: 本模塊是我的第一個(gè)C語(yǔ)言作業(yè),實(shí)現(xiàn)了一些簡(jiǎn)單的功能其它說(shuō)明: 無(wú)模塊歷史: 張三于2006年9月20日創(chuàng)立本模塊,email:zhangsan@123 張三于2006年9月25日修改本模塊,email:同上修改原因:增加了一個(gè)輸出正方形的函數(shù)\****************************************************/注意:紅色局部為必填局部,缺填紅色局部可能導(dǎo)致作業(yè)無(wú)法得到批閱注釋開(kāi)始注釋結(jié)束整理課件/****************************************************\作者信息:姓名:張三學(xué)號(hào):06123456班級(jí):計(jì)科0601班學(xué)院:計(jì)算機(jī)Email:zhangsan@123:51689999版權(quán)聲明:版權(quán)由張三所有,除老師外,未經(jīng)允許不得拷貝本人作業(yè)模塊名稱:第一個(gè)模塊摘要:本模塊是我的第一個(gè)C語(yǔ)言作業(yè),實(shí)現(xiàn)了一些簡(jiǎn)單的功能其它說(shuō)明:無(wú)模塊歷史:張三于2006年9月20日創(chuàng)立本模塊,email:zhangsan@123張三于2006年9月25日修改本模塊,email:同上修改原因:增加了一個(gè)輸出正方形的函數(shù)\****************************************************/#include“stdio.h〞#include“string.h〞/**********************\main函數(shù)說(shuō)明\**********************/main(){…..}模塊說(shuō)明例如:example.cpp整理課件EnglishVersion/****************************************************\AuthorInfo: Name:AuthorID:Class:School: Email:Tel.Copyright(c)2005NJTUModuleName: Anunabbreviatednameforthemodule(notthefilename)Abstract: DescriptionofwhatthismoduledoesNotes: [Optional]Additionalnotesaboutthismodule-thingsthatmayhelp thereaderofthiscodelateron.Examplesare:algorithmdescription, specialcaseconditions,references,etc.History: Createdonmm/dd/yyyybyemail-name Modifiedonmm/dd/yyyybyemail-name [Optional]historydescription\****************************************************/整理課件2.函數(shù)說(shuō)明標(biāo)準(zhǔn)FunctionSpecification整理課件關(guān)于函數(shù)說(shuō)明對(duì)于作業(yè)中程序的任何一個(gè)函數(shù),包括main函數(shù),都需要寫(xiě)出函數(shù)的說(shuō)明一個(gè)良好的編程習(xí)慣:寫(xiě)任何一個(gè)函數(shù)以前,第一步工作就是先把函數(shù)說(shuō)明寫(xiě)出來(lái),而不是直接先寫(xiě)代碼整理課件函數(shù)說(shuō)明標(biāo)準(zhǔn)/***********************************************\函數(shù)名稱: 寫(xiě)出函數(shù)的名稱功能描述: 描述出函數(shù)具有的功能函數(shù)參數(shù): 輸入輸出參數(shù)說(shuō)明,對(duì)每個(gè)參數(shù)都需要作出仔細(xì)說(shuō)明返回值: 返回值說(shuō)明,或者標(biāo)明無(wú)回值模塊歷史: 誰(shuí)于某年某月某日創(chuàng)立本模塊,創(chuàng)立人email 誰(shuí)于某年某月某日修改本模塊,修改人email修改原因:可有可無(wú),根據(jù)需要添加\**********************************************/整理課件例子/**********************************************************************\函數(shù)名稱: main功能描述: 輸出Helloworld!函數(shù)參數(shù): 無(wú)返回值: 無(wú)模塊歷史: 張三于2006年9月20日創(chuàng)立本模塊,email:zhangsan@123\*********************************************************************/voidmain(){ printf("Helloworld!");}整理課件EnglishVersion/***********************************************\FunctionName:FunctionDescription:DescriptionofwhatthefunctiondoesArguments:[<blank>|OUT|IN/OUT]argument-name-descriptionofargument…ReturnValue:return-value-descriptionofreturnvalueorNONEHistory:Createdonmm/dd/yyyybyemail-name\**********************************************/整理課件3.代碼注釋整理課件恰到好處的注釋1.對(duì)重要變量說(shuō)明其作用;2.對(duì)每一段函數(shù)代碼加注釋說(shuō)明功能;3.對(duì)重要的語(yǔ)句加注釋說(shuō)明其功能;4.對(duì)重要的函數(shù)調(diào)用的參數(shù)加實(shí)際參數(shù)說(shuō)明;5.在自己認(rèn)為必要的地方加上注釋6.可以采用/**/和//進(jìn)行注釋整理課件4.根本編輯標(biāo)準(zhǔn)要求正確使用:縮進(jìn),空格,空行整理課件縮進(jìn)根據(jù)語(yǔ)句間的層次關(guān)系采用縮進(jìn)格式書(shū)寫(xiě)程序,每進(jìn)一層,往后縮進(jìn)一層函數(shù)內(nèi)的變量聲明與執(zhí)行語(yǔ)句要縮進(jìn)一層縮進(jìn)長(zhǎng)函數(shù)調(diào)用語(yǔ)句pMsg=ComReadMsgFromQueue(aServer,NULL,ComWait_c,lTimeOut);一個(gè)縮進(jìn)層次為四個(gè)英文字符寬度一般用Tab鍵進(jìn)行縮進(jìn),定義Tab為四個(gè)英文字符寬度許多開(kāi)發(fā)工具編輯器如VC一般會(huì)自動(dòng)幫你縮進(jìn)整理課件要加空格的場(chǎng)合1.在逗號(hào)后面和語(yǔ)句中間的分號(hào)后面加空格,如:inti,j,

k;for(i=0;i<n;i++)Result=func(a,b,c);2.在二目運(yùn)算符的兩邊各留一個(gè)空格,如a>ba<=bi=03.關(guān)鍵字兩側(cè),如if()…,不要寫(xiě)成if()…4.類(lèi)型與指針說(shuō)明符之間一定要加空格:char*szName;整理課件不要加空格的場(chǎng)合1.在結(jié)構(gòu)成員引用符號(hào).和->左右兩加不加空格:pStud->szName,Student.nID2.不要在行尾加多余的空格或Tab3.函數(shù)名與左括號(hào)之間不要加空格:func(…)4.指針說(shuō)明符號(hào)*與變量名間不要加空格:int*pInt;不要寫(xiě)成:int*pInt;5.復(fù)合運(yùn)算符中間不能加空格,否那么會(huì)產(chǎn)生語(yǔ)法錯(cuò)誤,如:a+=ba<=b都是錯(cuò)誤的整理課件空行與換行1.函數(shù)的變量說(shuō)明與執(zhí)行語(yǔ)句之間加上空行;2.每個(gè)函數(shù)內(nèi)的主要功能塊之間加空行表示區(qū)隔;3.一行語(yǔ)句不要寫(xiě)的太長(zhǎng),將長(zhǎng)語(yǔ)句分成多行寫(xiě);4.不要在一行中寫(xiě)多條語(yǔ)句.整理課件例子intmain(){inti,j,nSum=0;//變量說(shuō)明

for(i=0;i<10;i++)//執(zhí)行代碼{ for(j=0;j<10;j++) { nSum+=i; }}}注意空格空行注意各層縮進(jìn)整理課件5.標(biāo)識(shí)符命名NamingIndentifiers整理課件標(biāo)識(shí)符命名根本要求1.這里所指的標(biāo)識(shí)符包括符號(hào)常量、變量、函數(shù)名、類(lèi)型名、成員名、C++中的類(lèi)名等需要編程者命名的各種文字符號(hào)2.標(biāo)識(shí)符命名必須符合語(yǔ)法規(guī)那么3.任何標(biāo)識(shí)符的命名最好能有一定的含義4.標(biāo)識(shí)符的命名盡量采用英文整理課件5.1符號(hào)常量命名標(biāo)準(zhǔn)符號(hào)常量的命名用大寫(xiě)字母表示如#defineLENGTH10如果符號(hào)常量由多個(gè)單詞構(gòu)成,兩個(gè)不同的單詞之間可以用下劃線連接如#defineMAX_LEN50整理課件5.2變量命名普通標(biāo)準(zhǔn)1.變量名一般需要反映變量的用途如:intsum;2.如果變量名由多個(gè)單詞構(gòu)成,每個(gè)單詞的首字符要大寫(xiě)如:intTotalFiles;整理課件5.3變量命名與變量類(lèi)型在實(shí)際軟件開(kāi)發(fā)中,常見(jiàn)的標(biāo)準(zhǔn)強(qiáng)制要求能從變量名中看出變量的類(lèi)型,因此,建議同學(xué)們一開(kāi)始就養(yǎng)成這樣的習(xí)慣。使變量能反映類(lèi)型的方法是在變量的前面加上各種前綴,由這些前綴反映變量的類(lèi)型對(duì)類(lèi)型前綴標(biāo)準(zhǔn),各種不同的軟件開(kāi)發(fā)環(huán)境可能會(huì)有不同標(biāo)準(zhǔn),不同的軟件企業(yè)或開(kāi)發(fā)團(tuán)隊(duì),也可能會(huì)有不同的標(biāo)準(zhǔn),沒(méi)有絕對(duì)的標(biāo)準(zhǔn),但是這些標(biāo)準(zhǔn)都大同小異。整理課件5.4C常見(jiàn)變量前綴建議標(biāo)準(zhǔn)類(lèi)型前綴范例intn或iintnSum,iSum;charchcharchTemp;doubleddoubledSum;floatflfloatflSum;char*szchar*szBuffer;char[]szcharszBuffer[100];pointpint*pnBuffer;pointertopointerppint*ppnBuffer;arrayarr或rgintnarr[10],nrg[10];整理課件5.5關(guān)于C++命名標(biāo)準(zhǔn)在各種C++中,還有許多不同類(lèi)型的標(biāo)識(shí)符前綴,包括模塊成員、全局變量等整理課件其它供參考C++前綴標(biāo)準(zhǔn)sSHORTSignedinteger,16-bit.lLONGSignedinteger,32-bit.usUSHORTUnsignedinteger,16-bit.ulULONGUnsignedinteger,32-bit.bBYTENon-countingpurposes,8-bitallocation.wWORDNon-countingpurposes,16-bitallocation.dwDWORDNon-countingpurposes,32-bita

溫馨提示

  • 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)論