freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

編程規(guī)范和范例-資料下載頁(yè)

2025-04-23 06:17本頁(yè)面
  

【正文】 ra。 // 給 Exam賦值并計(jì)算其平方過(guò)程中(即正在使用此 temp = Square_Exam( )。 // 信號(hào)),本進(jìn)程必須等待其釋放信號(hào)后,才可繼 [釋放信號(hào)量操作 ] // 續(xù)執(zhí)行。若申請(qǐng)到信號(hào),則可繼續(xù)執(zhí)行,但其 // 它進(jìn)程必須等待本進(jìn)程釋放信號(hào)量后,才能再使 // 用本信號(hào)。 return temp。 } 185。65:在同一項(xiàng)目組應(yīng)明確規(guī)定對(duì)接口函數(shù)參數(shù)的合法性檢查應(yīng)由函數(shù)的調(diào)用者負(fù)責(zé)還是由接口函數(shù)本身負(fù)責(zé),缺省是由函數(shù)調(diào)用者負(fù)責(zé)。 說(shuō)明:對(duì)于模塊間接口函 數(shù)的參數(shù)的合法性檢查這一問(wèn)題,往往有兩個(gè)極端現(xiàn)象,即:要么是調(diào)用者和被調(diào)用者對(duì)參數(shù)均不作合法性檢查,結(jié)果就遺漏了合法性檢查這一必要的處理過(guò)程,造成問(wèn)題隱患;要么就是調(diào)用者和被調(diào)用者均對(duì)參數(shù)進(jìn)行合法性檢查,這種情況雖不會(huì)造成問(wèn)題,但產(chǎn)生了冗余代碼,降低了效率。 189。61:防止將函數(shù)的參數(shù)作為工作變量。 說(shuō)明:將函數(shù)的參數(shù)作為工作變量,有可能錯(cuò)誤地改變參數(shù)內(nèi)容,所以很危險(xiǎn)。對(duì)必須改變的參數(shù),最好先用局部變量代之,最后再將該局部變量的內(nèi)容賦給該參數(shù)。 示例:下函數(shù)的實(shí)現(xiàn)不太好。 void sum_data( unsigned int num, int *data, int *sum ) { unsigned int count。 *sum = 0。 for (count = 0。 count num。 count++) { *sum += data[count]。 // sum 成了工作變量,不太好。 } } 若改為如下,則更好些。 void sum_data( unsigned int num, int *data, int *sum ) 軟件編程規(guī)范總則 6 函數(shù)、過(guò)程 僅供內(nèi)部使用 31 { unsigned int count 。 int sum_temp。 sum_temp = 0。 for (count = 0。 count num。 count ++) { sum_temp += data[count]。 } *sum = sum_temp。 } 189。62:函數(shù)的規(guī)模盡量限制在 200行以內(nèi)。 說(shuō)明:不包括注釋和空格行 。 189。63:一個(gè)函數(shù)僅完成一件功能。 189。64:為簡(jiǎn)單功能編寫函數(shù)。 說(shuō)明:雖 然為僅用一兩行就可完成的功能去編函數(shù)好象沒(méi)有必要,但用函數(shù)可使功能明確化,增加程序可讀性,亦可方便維護(hù)、測(cè)試。 示例:如下語(yǔ)句的功能不很明顯。 value = ( a b ) ? a : b 。 改為如下就很清晰了。 int max (int a, int b) { return ((a b) ? a : b)。 } value = max (a, b)。 或改為如下。 define MAX (a, b) (((a) (b)) ? (a) : (b)) value = MAX (a, b)。 軟件編程規(guī)范總則 6 函數(shù)、過(guò)程 僅供內(nèi)部使用 32 189。65:不要設(shè)計(jì)多用途面面俱到的函數(shù)。 說(shuō)明:多功能集于一身的函數(shù),很可能使函數(shù)的理解、測(cè)試、維護(hù)等變得困難。 189。66:函數(shù)的功能應(yīng)該是可以預(yù)測(cè)的,也就是只要輸入數(shù)據(jù)相同就應(yīng)產(chǎn)生同樣的輸出。 說(shuō)明:帶有內(nèi)部“存儲(chǔ)器”的函數(shù)的功能可能是不可預(yù)測(cè)的,因?yàn)樗妮敵隹赡苋Q于內(nèi)部存儲(chǔ)器(如某標(biāo)記)的狀態(tài)。這樣的函數(shù)既不易于理解又不利于測(cè)試和維護(hù)。在 C/C++語(yǔ)言中,函數(shù)的 static局部變量是函數(shù)的內(nèi)部存儲(chǔ)器,有可能使函數(shù)的功能不可預(yù)測(cè),然而,當(dāng)某函數(shù)的返回值為指針類型時(shí),則必須是 STATIC的局部 變量的地址作為返回值,若為 AUTO類,則返回為錯(cuò)針。 示例:如下函數(shù),其返回值(即功能)是不可預(yù)測(cè)的。 unsigned int integer_sum( unsigned int base ) { unsigned int index。 static unsigned int sum = 0。 // 注意,是 static類型的。 // 若改為 auto類型,則函數(shù)即變?yōu)榭深A(yù)測(cè)。 for (index = 1。 index = base。 index++) { sum += index。 } return sum。 } 189。67:盡量不要編寫依賴于其他函數(shù)內(nèi)部實(shí)現(xiàn)的函數(shù)。 說(shuō)明:此條為函數(shù)獨(dú)立性的基本要求。由于目前大部分高級(jí)語(yǔ)言都是結(jié)構(gòu)化的,所以通過(guò)具體語(yǔ)言的語(yǔ)法要求與編譯器功能,基本就可以防止這種情況發(fā)生。但在匯編語(yǔ)言中,由于其靈活性,很可能使函數(shù)出現(xiàn)這種情況。 示例:如下是在 DOS下 TASM的匯編程序例子。過(guò)程 Print_Msg的實(shí)現(xiàn)依賴于Input_Msg的具體實(shí)現(xiàn),這種程序 是非結(jié)構(gòu)化的,難以維護(hù)、修改。 ... // 程序代碼 proc Print_Msg // 過(guò)程(函數(shù)) Print_Msg ... // 程序代碼 jmp LABEL ... // 程序代碼 軟件編程規(guī)范總則 6 函數(shù)、過(guò)程 僅供內(nèi)部使用 33 endp proc Input_Msg // 過(guò)程(函數(shù)) Input_Msg ... // 程序代碼 LABEL: ... // 程序代碼 endp 189。68:避免設(shè)計(jì)多參數(shù)函數(shù),不使用的參數(shù)從接口中去掉。 說(shuō)明:目的減少函數(shù)間接口的復(fù)雜度。 189。69:非調(diào)度函數(shù)應(yīng)減少 或防止控制參數(shù),盡量只使用數(shù)據(jù)參數(shù)。 說(shuō)明:本建議目的是防止函數(shù)間的控制耦合。調(diào)度函數(shù)是指根據(jù)輸入的消息類型或控制命令,來(lái)啟動(dòng)相應(yīng)的功能實(shí)體(即函數(shù)或過(guò)程),而本身并不完成具體功能??刂茀?shù)是指改變函數(shù)功能行為的參數(shù),即函數(shù)要根據(jù)此參數(shù)來(lái)決定具體怎樣工作。非調(diào)度函數(shù)的控制參數(shù)增加了函數(shù)間的控制耦合,很可能使函數(shù)間的耦合度增大,并使函數(shù)的功能不唯一。 示例:如下函數(shù)構(gòu)造不太合理。 int add_sub( int a, int b, unsigned char add_sub_flg ) { if (add_sub_flg == INTEGER_ADD) { return (a + b)。 } else { return (a b)。 } } 不如分為如下兩個(gè)函數(shù)清晰。 int add( int a, int b ) { return (a + b)。 } 軟件編程規(guī)范總則 6 函數(shù)、過(guò)程 僅供內(nèi)部使用 34 int sub( int a, int b ) { return (a b)。 } 189。610:檢查函數(shù)所有參數(shù)輸入的有效性。 189。611:檢查函數(shù)所有 非參數(shù)輸入的有效性,如數(shù)據(jù)文件、公共變量等。 說(shuō)明:函數(shù)的輸入主要有兩種:一種是參數(shù)輸入;另一種是全局變量、數(shù)據(jù)文件的輸入,即非參數(shù)輸入。函數(shù)在使用輸入之前,應(yīng)進(jìn)行必要的檢查。 189。612:函數(shù)名應(yīng)準(zhǔn)確描述函數(shù)的功能。 189。613:使用動(dòng)賓詞組為執(zhí)行某操作的函數(shù)命名。如果是 OOP方法,可以只有動(dòng)詞(名詞是對(duì)象本身)。 示例:參照如下方式命名函數(shù)。 void print_record( unsigned int rec_ind ) 。 int input_record( void ) 。 unsigned char get_current_color( void ) 。 建議 614:避免使用無(wú)意義或含義不清的動(dòng)詞為函數(shù)命名。 說(shuō)明:避免用含義不清的動(dòng)詞如 process、 handle等為函數(shù)命名,因?yàn)檫@些動(dòng)詞并沒(méi)有說(shuō)明要具體做什么。 建議 615:函數(shù)的返回值要清楚、明了,讓使用者不容易忽視錯(cuò)誤情況。 說(shuō)明:函數(shù)的每種出錯(cuò)返回值的意義要清晰、明了、準(zhǔn)確,防止使用者誤用、理解錯(cuò)誤或忽視錯(cuò)誤返回碼。 189。616:除非必要,最好不要把與函數(shù)返回值類型不同的變量,以編譯系統(tǒng)默認(rèn)的轉(zhuǎn)換方式或強(qiáng)制的轉(zhuǎn)換方式作為返回值返回。 189。617:讓函數(shù)在調(diào)用點(diǎn)顯得易懂、容易理解。 189。618:在調(diào)用函數(shù)填寫參數(shù)時(shí),應(yīng)盡量減少?zèng)]有必要的默認(rèn)數(shù)據(jù)類型轉(zhuǎn)換或強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換。 說(shuō)明:因?yàn)閿?shù)據(jù)類型轉(zhuǎn)換或多或少存在危險(xiǎn)。 軟件編程規(guī)范總則 6 函數(shù)、過(guò)程 僅供內(nèi)部使用 35 189。619:避免函數(shù)中不必要語(yǔ)句,防止程序中的垃圾代碼。 說(shuō)明:程序中的垃圾代碼不僅占用額外的空間,而且還常常影響程序的功能與性能,很可能給程序的測(cè)試、維護(hù)等造成不必要的麻煩。 189。620:防止把沒(méi)有關(guān)聯(lián)的語(yǔ)句放到一個(gè)函數(shù)中。 說(shuō)明:防止函數(shù)或過(guò)程內(nèi)出現(xiàn)隨機(jī)內(nèi)聚。隨機(jī)內(nèi)聚是指將沒(méi)有關(guān)聯(lián)或關(guān)聯(lián)很弱的語(yǔ)句放到同一個(gè)函數(shù)或過(guò)程中。隨機(jī)內(nèi)聚給函數(shù) 或過(guò)程的維護(hù)、測(cè)試及以后的升級(jí)等造成了不便,同時(shí)也使函數(shù)或過(guò)程的功能不明確。使用隨機(jī)內(nèi)聚函數(shù),常常容易出現(xiàn)在一種應(yīng)用場(chǎng)合需要改進(jìn)此函數(shù),而另一種應(yīng)用場(chǎng)合又不允許這種改進(jìn),從而陷入困境。 在編程時(shí),經(jīng)常遇到在不同函數(shù)中使用相同的代碼,許多開(kāi)發(fā)人員都愿把這些代碼提出來(lái),并構(gòu)成一個(gè)新函數(shù)。若這些代碼關(guān)聯(lián)較大并且是完成一個(gè)功能的,那么這種構(gòu)造是合理的,否則這種構(gòu)造將產(chǎn)生隨機(jī)內(nèi)聚的函數(shù)。 示例:如下函數(shù)就是一種隨機(jī)內(nèi)聚。 void Init_Var( void ) { = 0。 = 0。 /* 初始化矩形的長(zhǎng)與寬 */ = 10。 = 10。 /* 初始化“點(diǎn)”的坐標(biāo) */ } 矩形的長(zhǎng)、寬與點(diǎn)的坐標(biāo)基本沒(méi)有任何關(guān)系,故以上函數(shù)是隨機(jī)內(nèi)聚。 應(yīng)如下分為兩個(gè)函數(shù): void Init_Rect( void ) { = 0。 = 0。 /* 初始化矩形的長(zhǎng)與寬 */ } void Init_Point( void ) { = 10。 = 10。 /* 初始化“點(diǎn)”的坐標(biāo) */ 軟件編程規(guī)范總則 6 函數(shù)、過(guò)程 僅供內(nèi)部使用 36 } 189。621:如果多段代碼重復(fù)做同一件事情,那么在函數(shù)的劃分上可能存在問(wèn)題。 說(shuō)明:若此段代碼各語(yǔ)句之間有實(shí)質(zhì)性關(guān)聯(lián)并且是完成同一件功能的,那么可考慮把此段代碼構(gòu)造成一個(gè)新的函數(shù)。 189。622:功能不明確較小的函數(shù),特別是僅有一個(gè)上級(jí)函數(shù)調(diào)用它時(shí),應(yīng)考慮把它合并到上級(jí)函數(shù)中,而不必單獨(dú)存在。 說(shuō)明:模塊中函數(shù)劃分的過(guò)多,一般會(huì)使函數(shù)間的接口變得復(fù)雜。所以過(guò)小的函數(shù),特別是扇入很低的或功能不明確的函數(shù),不值得單獨(dú)存在。 189。623:設(shè)計(jì)高扇入、合理扇出(小于 7)的函數(shù)。 說(shuō)明:扇出是指一個(gè)函數(shù)直接調(diào)用(控制)其它函數(shù)的數(shù)目,而扇入是指有多少上級(jí)函數(shù)調(diào)用它。 扇出過(guò)大,表明函數(shù)過(guò)分復(fù)雜,需要控制和協(xié)調(diào)過(guò)多的下級(jí)函數(shù);而扇出過(guò)小,如總是 1,表明函數(shù)的調(diào)用層次可能過(guò)多,這樣不利程序閱讀和函數(shù)結(jié)構(gòu)的分析,并且程序運(yùn)行時(shí)會(huì)對(duì)系統(tǒng)資源如堆??臻g等造成壓力。函數(shù)較合理的扇出(調(diào)度函數(shù)除外)通常是 35。扇出太大,一般是由于缺乏中間層次,可適當(dāng)增加中間層次的函數(shù)。扇出太小,可把下級(jí)函數(shù)進(jìn)一步分解多個(gè)函數(shù),或合并到上級(jí)函數(shù)中。當(dāng)然分解或合并 函數(shù)時(shí),不能改變要實(shí)現(xiàn)的功能,也不能違背函數(shù)間的獨(dú)立性。 扇入越大,表明使用此函數(shù)的上級(jí)函數(shù)越多,這樣的函數(shù)使用效率高,但不能違背函數(shù)間的獨(dú)立性而單純地追求高扇入。公共模塊中的函數(shù)及底層函數(shù)應(yīng)該有較高的
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1