編程代碼規(guī)范_第1頁(yè)
編程代碼規(guī)范_第2頁(yè)
編程代碼規(guī)范_第3頁(yè)
編程代碼規(guī)范_第4頁(yè)
編程代碼規(guī)范_第5頁(yè)
已閱讀5頁(yè),還剩22頁(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、1. 臨時(shí)變量命名規(guī)則:首字母小寫,name1Name2.2. 常量命名規(guī)則:大寫,NAME13. 函數(shù)命名規(guī)則:首字母大寫,Name1Name2().4. 注釋規(guī)范標(biāo)準(zhǔn)的函數(shù)注釋格式;/=/函數(shù)名: /作者: /日期: /功能: /輸入?yún)?shù):/返回值: /修改記錄:/=示例:/=/函數(shù)名: RecordIsExist/作者: jiangjingsong /日期: 2004-02-22/功能: 判斷當(dāng)前待插入或更新的記錄在原表中是否已經(jīng)存在/輸入?yún)?shù):bm (表名) 待查找的 表的名字/ zdm (字段名)在表中待查找的字段/ zdz(字段值) 需要比較的字段的值/返回值: 類型(boolea

2、n)/ 返回true表示當(dāng)前表中存在一條跟待插入的記錄一樣的記錄;/ 返回false表示當(dāng)前待插入的記錄在表中不存在。/修改記錄:/=我做C語(yǔ)言底層開發(fā),積累了一些代碼書寫的經(jīng)驗(yàn)供大家參考:1.C語(yǔ)言書寫規(guī)范1.1符號(hào)命名規(guī)則1.1.1符號(hào)名包括模塊名、常量名、標(biāo)號(hào)名、子程序名等。這些名字應(yīng)該能反映它所代表的實(shí)際東西,具有一定的意義,使其能夠見名知義,有助于對(duì)程序功能的理解。命名采用匈牙利命名法。規(guī)則如下:(1)所有宏定義、枚舉常數(shù)和const變量,用大寫字母命名。在復(fù)合詞里用下劃線隔開每個(gè)詞。(2)復(fù)合詞中每個(gè)單詞的第一個(gè)字母大寫。除了規(guī)則5.1.1.1以外,避免使用下劃線。(3)類、類型定

3、義和枚舉型名的第一個(gè)字母大寫。(4)函數(shù)名是復(fù)合詞的,第一個(gè)詞采用全部小寫,隨后每個(gè)單詞采用第一個(gè)字母大寫,其它字母小寫方式;如果是單個(gè)詞的,采用全部小寫方式。(5)循環(huán)變量可采用i, j, k等,不受上述規(guī)則限制。(6) 類的成員變量應(yīng)采用m_開頭。(7) 全局變量詞頭為g_ 。(8) 臨時(shí)變量詞頭為tmp_ 。(9) 對(duì)結(jié)構(gòu)體內(nèi)的變量命名, 遵循變量的具體含義命名原則(10)用小寫字母的前綴表示變量的類型,前綴的下一個(gè)字母用大寫。表 1詞 頭 類 型 詞 頭 類 型ch char l longi integer u unsignedb boolean p pointerf float lp

4、 long pointerd double s stringst structure sz ASCII stringby byte n short intH handle x,y 分別為x,y坐標(biāo)dw DWORD fn function表 2詞 頭 變 量 名 詞 頭 變 量 名task task sig signalsb binary semaphores wd watchdogsm mutual exclusionsemaphores tm timersc counting semaphores msg messagepipe pipe例:#define ARRAY_SIZE 24 /*規(guī)

5、則5.1.1.1*/int g_iFlag;class MyClass /*規(guī)則5.1.1.3*/;void someFunc( ) /*規(guī)則5.1.1.2和5.1.1.4*/.2.Q/ECC/BJ 0102001int nArrayARRAY_SIZE;unsigned char uchByte;char szName ;char *pszName = szName;(11)有些詞頭(如p和u)可以和其它詞頭組合。例:WDOG_ID wdId;WDOG_ID g_wdId; /*全局watchdog Id,故以g_開頭*/1.1.2名字的長(zhǎng)度一般不要過(guò)長(zhǎng)或過(guò)短。過(guò)長(zhǎng)的名字會(huì)增加工作量,使程序

6、邏輯流程變得模糊;過(guò)短的名字無(wú)法表達(dá)符號(hào)的實(shí)際意義。約定長(zhǎng)度范圍:3-31;1.2數(shù)據(jù)和函數(shù)說(shuō)明1.2.1數(shù)據(jù)說(shuō)明次序應(yīng)當(dāng)規(guī)范化,使數(shù)據(jù)屬性容易查找,也有利于測(cè)試、排錯(cuò)和維護(hù)。說(shuō)明的先后次序應(yīng)固定,應(yīng)按邏輯功能排序,邏輯功能塊內(nèi)建議采用下列順序:整型說(shuō)明、實(shí)型說(shuō)明、字符說(shuō)明、邏輯量說(shuō)明。1.2.2如果設(shè)計(jì)了一個(gè)復(fù)雜的數(shù)據(jù)結(jié)構(gòu),應(yīng)當(dāng)通過(guò)注釋對(duì)其變量的含義、用途進(jìn)行說(shuō)明。1.2.3在函數(shù)的聲明中使用異常聲明。如:void f() throw(toobig, toosmall, divzero);在聲明一個(gè)函數(shù)時(shí),將它所拋出的異常列出,便于函數(shù)的使用者了解可能會(huì)發(fā)生哪些異常。1.3 程序注釋1.3.

7、1程序注釋是程序員與日后的程序讀者之間通信的重要手段之一,注釋分為文件注釋、函數(shù)注釋和功能注釋。1.3.2正規(guī)程序的注釋應(yīng)注意:注釋行的數(shù)量占到整個(gè)源程序的1/3到1/2。1.3.3文件注釋位于整個(gè)源程序的最開始部分,注釋后空兩行開始程序正文。它包括:程序標(biāo)題。目的、功能說(shuō)明。文件作者、最后修改日期等說(shuō)明。例:./*(空一行)標(biāo)題: Demo.c功能: 測(cè)試VxWorks的各種系統(tǒng)調(diào)用.說(shuō)明:該程序測(cè)試各種VxWorks的系統(tǒng)調(diào)用函數(shù)。包括任務(wù)(taks)的創(chuàng)建、掛起及任務(wù)間通過(guò)信號(hào)燈實(shí)現(xiàn)同步,通過(guò)消息隊(duì)列進(jìn)行通訊。程序創(chuàng)建了兩個(gè)任務(wù):一個(gè)高優(yōu)先級(jí)的任務(wù)和一個(gè)低優(yōu)先級(jí)的任務(wù)。兩個(gè)任務(wù)間通過(guò)一個(gè)

8、二進(jìn)制的信號(hào)燈進(jìn)行同步,通過(guò)消息隊(duì)列進(jìn)行通訊。當(dāng)前版本: x.x修改信息: 2000.06.05 John, Initial Version2000.07.05 Tom, Bug xxxx fixed*/(空2行,開始程序正文)1.3.4 函數(shù)注釋通常置于每函數(shù)或過(guò)程的開頭部分,它應(yīng)當(dāng)給出函數(shù)或過(guò)程的整體說(shuō)明對(duì)于理解程序本身具有引導(dǎo)作用。一般包括如下條目:模塊標(biāo)題。有關(guān)本模塊功能和目的的說(shuō)明。調(diào)用格式接口說(shuō)明:包括輸入、輸出、返回值、異常。算法。如果模塊中采用了一些復(fù)雜的算法。例:file:/(注釋開頭應(yīng)和上一函數(shù)空兩行)(注釋開頭與上一函數(shù)最后一行間隔兩行)/*標(biāo)題:assignmentCo

9、mplete功能:BSC=MSC消息生成函數(shù),生成assignment_complete指配完成消息(BSMAP消息) .格式:int assignmentComplete(int iCellId, int iServiceChannnelNum, char *pszMSGData) throw(exception1, exception2)輸入:int iCellId: MS所在的小區(qū)識(shí)別iCellId取值:0x00-0xff .4.Q/ECC/BJ 0102001int iServiceChannnelNum:MS所占的業(yè)務(wù)信道號(hào)碼輸出:char * pszMSGData:指配完成消息數(shù)據(jù)

10、返回值: 0x00正常異常:exception1異常情況1, exception2異常情況2*/( 注釋后直接開始程序正文,不空行。)1.3.5功能性注釋嵌在源程序體中,用于描述其后的語(yǔ)句或程序段做什么工作,也就是解釋下面要做什么,或是執(zhí)行了下面的語(yǔ)句會(huì)怎么樣。而不要解釋下面怎么做,因?yàn)榻忉屧趺醋龀3Ec程序本身是重復(fù)的。例:/*把 amount 加到 total中*/total = amount + total;這樣的注釋僅僅是重復(fù)了下面的程序,對(duì)于理解它的工作并沒(méi)有什么作用。而下面的注釋,有助于讀者理解。/*將每月的銷售額amount加到年銷售額total中*/total = amount

11、+ total;1.4 函數(shù)編寫應(yīng)盡可能短小精悍,一般不超過(guò)兩屏,以便于調(diào)試和理解。1.5語(yǔ)句結(jié)構(gòu)為保證語(yǔ)句結(jié)構(gòu)的清晰和程序的可讀性,在編寫軟件程序時(shí)應(yīng)注意以下幾個(gè)方面的問(wèn)題:在一行內(nèi)只寫一條語(yǔ)句,并采用空格、空行和移行保證清楚的視覺(jué)效果。每一個(gè)嵌套的函數(shù)塊,使用一個(gè)TAB縮進(jìn)(可以設(shè)定為4個(gè)空格),大括號(hào)必須放在條件語(yǔ)句的下一行,單獨(dú)成一行,便于匹對(duì):如,有一段程序如下:for(i=1;in-1;i+) t=1; for(j=i+1;jn;j+)if(ajat ) t=j; if(t!=i )work=at;at=aI;aI=work;應(yīng)寫為for( i=1; in-1; i+)t=1;fo

12、r(j = i+1; jn; j+)if(aib)?a:b;不要使用空的if else 語(yǔ)句。如if(cMychar = A)if(cMychar = Z)printf(“This is a letter n”);elseprintf(“This is not a letter n”);else到底是否定哪個(gè)if容易引起誤解??赏ㄟ^(guò)加避免誤解。盡量減少使用“否定”條件的條件語(yǔ)句。如:把 if( !( (cMychar9) ) )改為if( (cMychar=0) & (cMychar 1000#pragma once#endif / _MSC_VER 1000#include / 引用標(biāo)準(zhǔn)庫(kù)的

13、頭文件, 必須使用#include “myheader.h” / 引用非標(biāo)準(zhǔn)庫(kù)的頭文件,必須使用namespace tq / 命名空間class CBox / 類結(jié)構(gòu)聲明;void Function1(); / 全局函數(shù)聲明#endif / end of define _GRAPHICS_H_【規(guī)則1-1-3】防止頭文件重復(fù)應(yīng)用預(yù)處理塊為了防止頭文件被重復(fù)引用,應(yīng)當(dāng)用ifndef/define/endif結(jié)構(gòu)產(chǎn)生預(yù)處理塊?!疽?guī)則1-1-4】標(biāo)準(zhǔn)庫(kù)的頭文件的引用用 #include 格式來(lái)引用標(biāo)準(zhǔn)庫(kù)的頭文件(編譯器將從標(biāo)準(zhǔn)庫(kù)目錄開始搜索)。【規(guī)則1-1-5】非標(biāo)準(zhǔn)庫(kù)頭文件的引用用 #includ

14、e “filename.h” 格式來(lái)引用非標(biāo)準(zhǔn)庫(kù)的頭文件(編譯器將從用戶的工作目錄開始搜索)。【規(guī)則1-1-6】不允許使用全局類類型變量盡量不要在頭文件中出現(xiàn)象extern CClassName obj 這類聲明,以防止全局對(duì)象初始化時(shí),多個(gè)類對(duì)象的構(gòu)造函數(shù)和析購(gòu)函數(shù)的調(diào)用順序混亂??捎萌趾瘮?shù)代替全局類類型變量?!疽?guī)則1-1-7】發(fā)布的頭文件應(yīng)通過(guò)完整性檢查發(fā)布的頭文件(例如: header.h), 應(yīng)用如下的test.cpp編譯通過(guò),以檢查頭文件相應(yīng)的完整性與自包含性。test.cpp文件的內(nèi)容如下:#include header.h / 檢查頭文件的完整性#include header.

15、h / 檢查頭文件的是否被重復(fù)引用【建議1-1-1】頭文件中只存放“聲明”而不存放“定義(實(shí)現(xiàn)代碼)”在C+ 語(yǔ)法中,類的成員函數(shù)可以在聲明的同時(shí)被定義,并且自動(dòng)成為內(nèi)聯(lián)函數(shù)。這雖然會(huì)帶來(lái)書寫上的方便,但卻造成了風(fēng)格不一致,弊大于利。建議將成員函數(shù)的定義與聲明分開,不論該函數(shù)體有多么小。如果想通過(guò)內(nèi)聯(lián)函數(shù)提高代碼效率,可在定義文件中相應(yīng)的成員函數(shù)實(shí)現(xiàn)代碼前加上關(guān)鍵字inline(參見規(guī)則6-5-1)。第2節(jié) 定義文件(.CPP/.C)【規(guī)則1-2-1】定義文件的組成(1) 定義文件開頭處的版權(quán)聲明(參見示例1-1-1)。(2) 對(duì)一些頭文件的引用。(3) 程序的實(shí)現(xiàn)體(包括數(shù)據(jù)和代碼)。假設(shè)定

16、義文件的名稱為 graphics.cpp,定義文件的結(jié)構(gòu)參見示例1-2-1?!臼纠?-2-1】/ 版權(quán)和版本聲明見示例1-1,此處省略。#include “graphics.h” / 引用頭文件/ 類成員函數(shù)的實(shí)現(xiàn)體void CBox:Draw()/ 全局函數(shù)的實(shí)現(xiàn)體void Function1()第3節(jié) 文件的組織【規(guī)則1-3-1】文件應(yīng)與類設(shè)計(jì)相對(duì)應(yīng)將一個(gè)類分解給2個(gè)文件存儲(chǔ)。一個(gè)是頭文件(.h),用于聲明類的成員變量和成員函數(shù);另一是定義文件(.cpp/.c),用于類的成員變量的初始化和成員函數(shù)的具體實(shí)現(xiàn)?!疽?guī)則1-3-2】不要將多個(gè)類的設(shè)計(jì)放在同一個(gè)“頭文件/定義文件”中接口類不必遵守

17、該規(guī)則。【建議1-3-1】目錄結(jié)構(gòu)需要公開的頭文件(如接口)保存于Include目錄或Inc,將不需要公開的頭文件和定義文件保存于Source目錄或Src?!窘ㄗh1-3-2】不要將一個(gè)類的設(shè)計(jì)放在一個(gè)頭文件和多個(gè)定義文件 如果出現(xiàn)定義文件太大,不得不分解為多個(gè)定義文件的情況,應(yīng)考慮類的設(shè)計(jì)是否恰當(dāng)。第二部分 排版第1節(jié) 空行【規(guī)則2-1-1】類聲明、函數(shù)定義之后空行在每個(gè)類聲明之后、每個(gè)函數(shù)定義結(jié)束之后都要加空行。參見示例2-1-1(a)【規(guī)則2-1-2】函數(shù)體內(nèi),邏輯中斷空行在一個(gè)函數(shù)體內(nèi),邏揖上密切相關(guān)的語(yǔ)句之間不加空行,其它地方應(yīng)加空行分隔。參見示例2-1-1(b )【示例2-1-1】(

18、a-b)/ 空行void Function1() / 空行void Function2() / 空行void Function3() / 空行while (condition) statement1; / 空行 if (condition) statement2; else statement3; / 空行 statement4;示例2-1-1(a) 函數(shù)之間的空行 示例2-1-1(b) 函數(shù)內(nèi)部的空行第2節(jié) 代碼行【規(guī)則2-2-1】if、for、while、do等語(yǔ)句自占一行執(zhí)行語(yǔ)句不得緊跟其后。不論執(zhí)行語(yǔ)句有多少都要加。這樣可以防止書寫失誤。示例2-2-1(a)為風(fēng)格良好的代碼行,示例2-

19、2-1(b)為風(fēng)格不良的代碼行。【示例2-2-1】(a-b)int nWidth; / 寬度int nHeight; / 高度int nDepth; / 深度int nWidth, nHeight, nDepth; / 寬度高度深度x = a + b;y = c + d;z = e + f;X a + b; y = c + d; z = e + f;if (nWidth nHeight)dosomething();if (nWidth =”、“=”、“+”、“*”、“%”、“&”、“|”、“”這類操作符前后不加空格?!窘ㄗh2-3-1】關(guān)鍵字之后要留空格const、virtual、inline、

20、case 等關(guān)鍵字之后至少要留一個(gè)空格,否則無(wú)法辨析關(guān)鍵字。if、for、while等關(guān)鍵字之后應(yīng)留一個(gè)空格再跟左括號(hào)(,以突出關(guān)鍵字?!窘ㄗh2-3-2】函數(shù)名之后不要留空格緊跟左括號(hào)(,以與關(guān)鍵字區(qū)別?!窘ㄗh2-3-3】(向后緊跟不留空格;)、,、;向前緊跟不留空格緊跟處不留空格?!窘ㄗh2-3-4】較長(zhǎng)表達(dá)式可以適當(dāng)?shù)厝サ粢恍┛崭駥?duì)于表達(dá)式比較長(zhǎng)的for語(yǔ)句和if語(yǔ)句,為了緊湊起見可以適當(dāng)?shù)厝サ粢恍┛崭?,如for (i=0; i10; i+)和if (a=b) & (c= 2000) / 良好的風(fēng)格if(nYear=2000) / 不良的風(fēng)格if (a=b) & (c=b&c=d) / 不良

21、的風(fēng)格for (i=0; i10; i+) / 良好的風(fēng)格for(i=0;i10;i+) / 不良的風(fēng)格for (i = 0; i 10; i +) / 過(guò)多的空格x = a b ? a : b; / 良好的風(fēng)格x=aFunction(); / 不要寫成 b - Function();第4節(jié) 對(duì)齊【規(guī)則2-4-1】分界符對(duì)齊程序的分界符和應(yīng)獨(dú)占一行并且位于同一列,同時(shí)與引用它們的語(yǔ)句左對(duì)齊?!疽?guī)則2-4-2】分界符內(nèi)的代碼塊對(duì)齊 之內(nèi)的代碼塊在右邊數(shù)格處左對(duì)齊。示例2-4-1(a)為風(fēng)格良好的對(duì)齊,示例2-4-1(b)為風(fēng)格不良的對(duì)齊?!臼纠?-4-1】(a-b)void Function(i

22、nt x) / program codevoid Function(int x) / program codeif (condition) / program codeelse / program codeif (condition) / program codeelse / program codefor (initialization; condition; update) / program codefor (initialization; condition; update) / program codeWhile (condition) / program codewhile (co

23、ndition) / program code如果出現(xiàn)嵌套的,則使用縮進(jìn)對(duì)齊,如: 示例2-4-1(a) 風(fēng)格良好的對(duì)齊 示例2-4-1(b) 風(fēng)格不良的對(duì)齊第5節(jié) 長(zhǎng)行拆分【規(guī)則2-5-1】拆分方法長(zhǎng)表達(dá)式要在低優(yōu)先級(jí)操作符處拆分成新行,操作符放在新行之首(以便突出操作符)。拆分出的新行要進(jìn)行適當(dāng)?shù)目s進(jìn),使排版整齊,語(yǔ)句可讀?!臼纠?-5-1】if (very_longer_variable1 = very_longer_variable12)& (very_longer_variable3 = very_longer_variable14)& (very_longer_variable5

24、Draw(); / 類的成員函數(shù)pBitmap-GetWidth();【規(guī)則3-1-7】用正確的反義詞組用正確的反義詞組命名具有互斥意義的變量或相反動(dòng)作的函數(shù)等。例如:int nMinValue;int nMaxValue;void SetValue();int GetValue();【規(guī)則3-1-8】盡量避免名字中出現(xiàn)數(shù)字編號(hào)如Value1,Value2等,除非邏輯上的確需要編號(hào)。這是為了防止程序員偷懶,不肯為命名動(dòng)腦筋而導(dǎo)致產(chǎn)生無(wú)意義的名字(因?yàn)橛脭?shù)字編號(hào)最省事)。【規(guī)則3-1-9】自定義類型名自定義類型是指非C+標(biāo)準(zhǔn)的內(nèi)置數(shù)據(jù)類型,包括:類類型、結(jié)構(gòu)類型、聯(lián)合類型、枚舉類型以及由type

25、def定義的類型。(1)類類型名用“C”加大寫字母開頭的單詞組合而成;例如: class CNode; / 類名 接口類類型名用“I”加大寫字母開頭的單詞組合而成;例如: class IRole; / 接口類名 模板類類型名用“T”加大寫字母開頭的單詞組合而成。例如: class TEncryptor; / 模板類名(2)結(jié)構(gòu), 聯(lián)合,枚舉,typedef定義類型名用全部大寫字母的單詞組合而成,單詞間加下劃線連接。例如: struct NODE_INFO; / 結(jié)構(gòu)名struct PLAYER_INFO;struct POINTint x, y;POINT(int _x = 0, int _y

26、 = 0) : x(_x), y(_y) (3)集合型數(shù)據(jù)類型的重定義typedef std:vector USER_VEC;typedef std:list USER_LST;typedef std:deque USER_DEQ;typedef std:queue USER_QUE;typedef std:stack USER_STK;typedef std:set ID_SET;typedef std:map USER_MAP;typedef std:multimap USER_MMAP;typedef std:hash_map USER_HMAP;typedef std:pair USE

27、R_PAR;編程規(guī)范1.基本要求1.1 程序結(jié)構(gòu)清析,簡(jiǎn)單易懂,單個(gè)函數(shù)的程序行數(shù)不得超過(guò)100行。1.2 打算干什么,要簡(jiǎn)單,直接了當(dāng),代碼精簡(jiǎn),避免垃圾程序。1.3 盡量使用標(biāo)準(zhǔn)庫(kù)函數(shù)和公共函數(shù)。1.4 不要隨意定義全局變量,盡量使用局部變量。1.5 使用括號(hào)以避免二義性。2.可讀性要求2.1 可讀性第一,效率第二。2.2 保持注釋與代碼完全一致。2.3 每個(gè)源程序文件,都有文件頭說(shuō)明,說(shuō)明規(guī)格見規(guī)范。2.4 每個(gè)函數(shù),都有函數(shù)頭說(shuō)明,說(shuō)明規(guī)格見規(guī)范。2.5 主要變量(結(jié)構(gòu)、聯(lián)合、類或?qū)ο螅┒x或引用時(shí),注釋能反映其含義。2.7 常量定義(DEFINE)有相應(yīng)說(shuō)明。2.8 處理過(guò)程的每個(gè)階

28、段都有相關(guān)注釋說(shuō)明。2.9 在典型算法前都有注釋。2.10 利用縮進(jìn)來(lái)顯示程序的邏輯結(jié)構(gòu),縮進(jìn)量一致并以Tab鍵為單位,定義Tab為 6個(gè)字節(jié)。2.11 循環(huán)、分支層次不要超過(guò)五層。2.12 注釋可以與語(yǔ)句在同一行,也可以在上行。2.13 空行和空白字符也是一種特殊注釋。2.14 一目了然的語(yǔ)句不加注釋。2.15 注釋的作用范圍可以為:定義、引用、條件分支以及一段代碼。2.16 注釋行數(shù)(不包括程序頭和函數(shù)頭說(shuō)明部份)應(yīng)占總行數(shù)的 1/5 到 1/3 。3. 結(jié)構(gòu)化要求3.1 禁止出現(xiàn)兩條等價(jià)的支路。3.2 禁止GOTO語(yǔ)句。3.3 用 IF 語(yǔ)句來(lái)強(qiáng)調(diào)只執(zhí)行兩組語(yǔ)句中的一組。禁止 ELSE

29、GOTO 和 ELSE RETURN。3.4 用 CASE 實(shí)現(xiàn)多路分支。3.5 避免從循環(huán)引出多個(gè)出口。3.6 函數(shù)只有一個(gè)出口。3.7 不使用條件賦值語(yǔ)句。3.8 避免不必要的分支。3.9 不要輕易用條件分支去替換邏輯表達(dá)式。4. 正確性與容錯(cuò)性要求4.1 程序首先是正確,其次是優(yōu)美4.2 無(wú)法證明你的程序沒(méi)有錯(cuò)誤,因此在編寫完一段程序后,應(yīng)先回頭檢查。4.3 改一個(gè)錯(cuò)誤時(shí)可能產(chǎn)生新的錯(cuò)誤,因此在修改前首先考慮對(duì)其它程序的影響。4.4 所有變量在調(diào)用前必須被初始化。4.5 對(duì)所有的用戶輸入,必須進(jìn)行合法性檢查。4.6 不要比較浮點(diǎn)數(shù)的相等,如: 10.0 * 0.1 = 1.0 , 不可靠4.7 程序與環(huán)境或狀態(tài)發(fā)生關(guān)系時(shí),必須主動(dòng)去處理發(fā)生的意外事件,如文件能否邏輯鎖定、打印機(jī)是否聯(lián)機(jī)等。4.8 單元測(cè)試也是編程的一部份,提交聯(lián)調(diào)測(cè)試的程序必須通過(guò)單元測(cè)試。5. 可重用性要求5.1 重復(fù)使用的完成相對(duì)獨(dú)立功能的算法或代碼應(yīng)抽象為公共控件或類。5.2 公共控件或類應(yīng)考慮OO思想,減少外界聯(lián)系,考慮獨(dú)立性或封裝性。5.3 公共控件或類應(yīng)建立使用模板。 附:C 編程規(guī)范,delph

溫馨提示

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