第一講如何寫出好程序c語言_第1頁
第一講如何寫出好程序c語言_第2頁
第一講如何寫出好程序c語言_第3頁
第一講如何寫出好程序c語言_第4頁
第一講如何寫出好程序c語言_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費閱讀

付費下載

下載本文檔

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

文檔簡介

C語言程序設計編碼規(guī)范鄧偉林

為什么要這么做?書寫良好的代碼更容易閱讀容易閱讀的代碼才容易被理解容易被理解的代碼才健康編程風格體現了程序員對語言的理解水平求職:好的編程風格給別人良好的第一印象,是獲得高薪的第一步1.編寫目的通過編程規(guī)范的學習和強制執(zhí)行,使同學們從一開始就接觸基本的軟件開發(fā)思想,了解基本的軟件工程規(guī)范,養(yǎng)成良好的編程習慣;為后續(xù)課程的實踐環(huán)節(jié)和日后實際工作打下良好的基礎;也便于教師批改與回復電子作業(yè)。執(zhí)行良好的編碼規(guī)范可以使編寫出來的程序易于閱讀、理解和管理。2.編碼規(guī)范的定義編碼(coding):是指用適當的代碼編寫工具編寫C語言程序的源代碼編碼規(guī)范:相關英文說法:codingstandard,codingconvention,codingcriterion是指被普通采用的、或由某個企業(yè)或機構規(guī)定的,用計算機語言編寫程序的過程中需要遵守的一套規(guī)則或約定的集合編碼規(guī)范并不是語言的語法規(guī)則3.編碼規(guī)范的應用在軟件業(yè)高速發(fā)展、團隊開發(fā)成為基本開發(fā)模式的今天,幾乎每個軟件企業(yè)或軟件開發(fā)團隊都會制定各種各樣的規(guī)范,應用于軟件開發(fā)過程的各個環(huán)節(jié)中,編碼規(guī)范是最基礎規(guī)范之一。不同的公司,對同一種開發(fā)語言,一般都采用類似的規(guī)范,也就是說編碼規(guī)范具有一些通用性的標準4.編碼規(guī)范的學習和執(zhí)行要求學習和掌握規(guī)范標準要求在本課程的作業(yè)過程中執(zhí)行這些規(guī)范,上交的電子作業(yè)必須符合這些規(guī)范要求要求在后續(xù)相關課程中執(zhí)行此規(guī)范中的基本部分,并根據后續(xù)課程內容要求執(zhí)行相應的擴展規(guī)范C語言編碼規(guī)范Codingstandards1.文件級模塊說明規(guī)范Filemodulespecification文件級模塊說明規(guī)范的含義模塊定義:指以獨立的文件形式存在的模塊,主要包括兩類C或C++的擴展名為.c或.cpp的源代碼文件模塊,例如abc.cpp,exam.c擴展名為.h的頭文件模塊,如abc.h,exam.h對于任何一個用戶新建的模塊,必須按規(guī)范要求給出模塊的相關描述信息文件級模塊說明的構成文件級模塊說明至少應由以下部分構成1.模塊的作者信息2.模塊的版權聲明3.模塊的名稱4.模塊的摘要描述5.模塊的其它說明6.模塊的歷史信息文件級模塊說明的編寫1.每個用戶的文件級代碼模塊必須編寫一個說明2.模塊說明要求以注釋的形式出現在模塊的首部3.為了減少每次的工作,每個人應先編寫好不變部分,每新建一個模塊將不變部分復制到文件首部,再行更改可變部分中文版文件級模塊說明規(guī)范/****************************************************\作者信息:版權聲明:模塊名稱:

本模塊詳細名稱,不是文件名摘要:

摘要地描述本模塊的功能其它說明:

可有可無,有關本模塊的附加說明,這些說明可以在以后幫助代碼的閱讀者理解這個模塊里的內容,如:算法的描述,特殊情況,參考資料等模塊歷史:

誰于某年某月某日創(chuàng)建本模塊,創(chuàng)建人email

誰于某年某月某日修改本模塊,修改人email

修改原因:可有可無,根據需要添加\****************************************************/EnglishVersion/****************************************************\AuthorInfo: CopyrightModuleName: 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.函數說明規(guī)范FunctionSpecification關于函數說明對于作業(yè)中程序的任何一個函數,包括main函數,都需要寫出函數的說明一個良好的編程習慣:寫任何一個函數以前,第一步工作就是先把函數說明寫出來,而不是直接先寫代碼函數說明規(guī)范/***********************************************\函數名稱:

寫出函數的名稱功能描述:

描述出函數具有的功能函數參數:

輸入輸出參數說明,對每個參數都需要作出仔細說明返回值:

返回值說明,或者標明無回值模塊歷史:

誰于某年某月某日創(chuàng)建本模塊,創(chuàng)建人email

誰于某年某月某日修改本模塊,修改人email

修改原因:可有可無,根據需要添加\**********************************************/例子/**********************************************************************\函數名稱: main功能描述: 輸出Helloworld!函數參數: 無返回值: 無模塊歷史: 張三于2011年3月20日創(chuàng)建本模塊,email:\*********************************************************************/voidmain(){ printf("Helloworld!");}EnglishVersion/***********************************************\FunctionName:FunctionDescription:DescriptionofwhatthefunctiondoesArguments:[<blank>|OUT|IN/OUT]argument-name-descriptionofargument

…ReturnValue:return-value-descriptionofreturnvalueorNONEHistory:Createdonmm/dd/yyyybyemail-name\**********************************************/3.代碼注釋恰到好處的注釋1.對重要變量說明其作用;2.對每一段函數代碼加注釋說明功能;3.對重要的語句加注釋說明其功能;4.對重要的函數調用的參數加實際參數說明;5.在自己認為必要的地方加上注釋6.可以采用/**/和//進行注釋4.基本編輯規(guī)范要求正確使用:縮進,空格,空行縮進根據語句間的層次關系采用縮進格式書寫程序,每進一層,往后縮進一層函數內的變量聲明與執(zhí)行語句要縮進一層縮進長函數調用語句pMsg=ComReadMsgFromQueue(aServer,NULL,ComWait_c,lTimeOut);一個縮進層次為四個英文字符寬度一般用Tab鍵進行縮進,定義Tab為四個英文字符寬度許多開發(fā)工具編輯器如VC一般會自動幫你縮進要加空格的場合1.在逗號后面和語句中間的分號后面加空格,如:inti,j,

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

for(i=0;i<10;i++)//執(zhí)行代碼

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

溫馨提示

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

評論

0/150

提交評論