freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片
正文內(nèi)容
首頁(yè)
>
資源列表
>
更多資源
某公司程序培訓(xùn)教材(參考版)
2025-07-12 13:12
本頁(yè)面
【正文】 82:在保證軟件系統(tǒng)的正確性、穩(wěn)定性、可讀性及可測(cè)性的前提下,提高代碼效率。全局效率是站在整個(gè)系統(tǒng)的角度上的系統(tǒng)效率;局部效率是站在模塊或函數(shù)角度上的效率;時(shí)間效率是程序處理輸入任務(wù)所需的時(shí)間長(zhǎng)短;空間效率是程序所需內(nèi)存空間,如機(jī)器代碼空間大小、數(shù)據(jù)空間大小、??臻g大小等。 81:編程時(shí)要經(jīng)常注意代碼的效率。 // “合法”消息不成立,報(bào)告 return MSG_HANDLE_ERROR。 else // 否則報(bào)告 assert_report ( __FILE__, __LINE__ ) else // 若不使用斷言測(cè)試define ASSERT_REPORT( condition ) NULL endif /* end of ASSERT */int msg_handle( unsigned char msg_name, unsigned char * msg ){ switch( msg_name ) { case MSG_ONE: ... // 消息MSG_ONE處理 return MSG_HANDLE_SUCCESS。 to exit program */void assert_report( char * file_name, unsigned int line_no ){ printf( \n[EXAM]Error Report: %s, line %u\n, file_name, line_no )。ifdef _EXAM_ASSERT_TEST_ // 若使用斷言測(cè)試/* Notice: this function does not call 39。 73:編寫(xiě)防錯(cuò)程序,然后在處理錯(cuò)誤之后可用斷言宣布發(fā)生錯(cuò)誤。這樣做便于軟件功能的調(diào)測(cè),并且便于模塊的單元測(cè)試、系統(tǒng)聯(lián)調(diào)等。 72:調(diào)測(cè)開(kāi)關(guān)應(yīng)分為不同級(jí)別和類型。因此在編寫(xiě)源代碼之前,除了要有一套比較完善的測(cè)試計(jì)劃外,還應(yīng)設(shè)計(jì)出一系列代碼測(cè)試手段,為單元測(cè)試、集成測(cè)試及系統(tǒng)聯(lián)調(diào)提供方便。 71:在編寫(xiě)代碼之前,應(yīng)預(yù)先設(shè)計(jì)好程序調(diào)試與測(cè)試的方法和手段,并設(shè)計(jì)好各種調(diào)測(cè)開(kāi)關(guān)及相應(yīng)測(cè)試代碼如打印函數(shù)等。 715:軟件的DEBUG版本和發(fā)行版本應(yīng)該統(tǒng)一維護(hù),不允許分家,并且要時(shí)刻注意保證兩個(gè)版本在實(shí)現(xiàn)功能上的一致性。 714:用調(diào)測(cè)開(kāi)關(guān)來(lái)切換軟件的DEBUG版和正式版,而不要同時(shí)存在正式版本和DEBUG版本的不同源文件,以減少維護(hù)的難度。說(shuō)明:即有測(cè)試代碼的軟件和關(guān)掉測(cè)試代碼的軟件,在功能行為上應(yīng)一致。185。 712:正式軟件產(chǎn)品中應(yīng)把斷言及其它調(diào)測(cè)代碼去掉(即把有關(guān)的調(diào)測(cè)開(kāi)關(guān)關(guān)掉)。EXAM_ASSERT( sizeof( int ) == 2 )。對(duì)編譯器提供的功能及特性假設(shè)可用斷言檢查,原因是軟件最終產(chǎn)品(即運(yùn)行代碼或機(jī)器碼)與編譯器已沒(méi)有任何直接關(guān)系,即軟件運(yùn)行過(guò)程中(注意不是編譯過(guò)程中)不會(huì)也不應(yīng)該對(duì)編譯器的功能提出任何需求。用斷言僅可對(duì)程序開(kāi)發(fā)環(huán)境中的假設(shè)及所配置的某版本軟硬件是否具有某種功能的假設(shè)進(jìn)行檢查。 711:用斷言對(duì)程序開(kāi)發(fā)環(huán)境(OS/Compiler/Hardware)的假設(shè)進(jìn)行檢查。 EXAM_ASSERT( service != EXAM_CONNECTION )。 /* message service class */ EXAM_ASSERT( msg != NULL )。如下。示例:假設(shè)某通信模塊在設(shè)計(jì)時(shí),準(zhǔn)備提供“無(wú)連接”和“連接” 這兩種業(yè)務(wù)。 // 用斷言檢查“假設(shè)指針不為空”這個(gè)條件 ... //other program code}185。示例:假設(shè)某函數(shù)參數(shù)中有一個(gè)指針,那么使用指針前可對(duì)它檢查,如下。185。 78:對(duì)較復(fù)雜的斷言加上明確的注釋。如某模塊收到其它模塊或鏈路上的消息后,要對(duì)消息的合理性進(jìn)行檢查,此過(guò)程為正常的錯(cuò)誤檢查,不能用斷言來(lái)實(shí)現(xiàn)。 77:不能用斷言來(lái)檢查最終產(chǎn)品肯定會(huì)出現(xiàn)且必須處理的錯(cuò)誤情況。 76:用斷言來(lái)檢查程序正常運(yùn)行時(shí)不應(yīng)發(fā)生但在調(diào)測(cè)時(shí)有可能發(fā)生的非法情況。}define EXAM_ASSERT( condition ) if (condition) // 若條件成立,則無(wú)動(dòng)作 NULL。(其中NULL為0L)ifdef _EXAM_ASSERT_TEST_ // 若使用斷言測(cè)試void exam_assert( char * file_name, unsigned int line_no ){ printf( \n[EXAM]Assert failed: %s, line %u\n, file_name, line_no )。實(shí)際應(yīng)用時(shí),可根據(jù)具體情況靈活地設(shè)計(jì)斷言。說(shuō)明:斷言是對(duì)某種假設(shè)條件進(jìn)行檢查(可理解為若條件成立則無(wú)動(dòng)作,否則應(yīng)報(bào)告),它可以快速發(fā)現(xiàn)并定位軟件問(wèn)題,同時(shí)對(duì)系統(tǒng)錯(cuò)誤進(jìn)行自動(dòng)報(bào)警。185。 74:在進(jìn)行集成測(cè)試/系統(tǒng)聯(lián)調(diào)之前,要構(gòu)造好測(cè)試環(huán)境、測(cè)試項(xiàng)目及測(cè)試用例,同時(shí)仔細(xì)分析并優(yōu)化測(cè)試用例,以提高測(cè)試效率。說(shuō)明:為單元測(cè)試而準(zhǔn)備。 73:編程的同時(shí)要為單元測(cè)試選擇恰當(dāng)?shù)臏y(cè)試點(diǎn),并仔細(xì)構(gòu)造測(cè)試代碼、測(cè)試用例,同時(shí)給出明確的注釋說(shuō)明。說(shuō)明:統(tǒng)一的調(diào)測(cè)信息格式便于集成測(cè)試。 72:在同一項(xiàng)目組或產(chǎn)品組內(nèi),調(diào)測(cè)打印出的信息串的格式要有統(tǒng)一的形式。說(shuō)明:本規(guī)則是針對(duì)項(xiàng)目組或產(chǎn)品組的。示例:在某過(guò)程中較多引用TheReceiveBuffer[FirstSocket].byDataPtr,則可以通過(guò)以下宏定義來(lái)代替: define pSOCKDATA TheReceiveBuffer[FirstScoket].byDataPtr7 可測(cè)性185。 630:當(dāng)一個(gè)過(guò)程(函數(shù))中對(duì)較長(zhǎng)變量(一般是結(jié)構(gòu)的成員)有較多引用時(shí),可以用一個(gè)意義相當(dāng)?shù)暮甏妗?629: 對(duì)于提供了返回值的函數(shù),在引用時(shí)最好使用其返回值。還有NULL也是一個(gè)無(wú)意義的單詞。 628:避免使用BOOL參數(shù)。如DOS下BC和MSC等就不具備可重入函數(shù)庫(kù),因?yàn)镈OS是單用戶單任務(wù)操作系統(tǒng)。在多任務(wù)操作系統(tǒng)中,函數(shù)是否具有可重入性是非常重要的,因?yàn)檫@是多個(gè)進(jìn)程可以共用此函數(shù)的必要條件。 627:在多任務(wù)操作系統(tǒng)的環(huán)境下編程,要注意函數(shù)可重入性的構(gòu)造。(單一功能的函數(shù)內(nèi)聚最高)說(shuō)明:對(duì)初步劃分后的函數(shù)結(jié)構(gòu)應(yīng)進(jìn)行改進(jìn)、優(yōu)化,使之更為合理。(7)函數(shù)功能應(yīng)可預(yù)測(cè)。(5)降低函數(shù)間接口的復(fù)雜度。(3)通過(guò)分解或合并函數(shù)來(lái)改進(jìn)軟件結(jié)構(gòu)。優(yōu)化函數(shù)結(jié)構(gòu)時(shí),要遵守以下原則:(1)不能影響模塊功能的實(shí)現(xiàn)。189。說(shuō)明:函數(shù)的劃分與組織是模塊的實(shí)現(xiàn)過(guò)程中很關(guān)鍵的步驟,如何劃分出合理的函數(shù)結(jié)構(gòu),關(guān)系到模塊的最終效率和可維護(hù)性、可測(cè)性等。189。說(shuō)明:遞歸調(diào)用特別是函數(shù)間的遞歸調(diào)用(如ABCA),影響程序的可理解性;遞歸調(diào)用一般都占用較多的系統(tǒng)資源(如??臻g);遞歸調(diào)用對(duì)程序的測(cè)試有一定影響。189。公共模塊中的函數(shù)及底層函數(shù)應(yīng)該有較高的扇入。當(dāng)然分解或合并函數(shù)時(shí),不能改變要實(shí)現(xiàn)的功能,也不能違背函數(shù)間的獨(dú)立性。扇出太大,一般是由于缺乏中間層次,可適當(dāng)增加中間層次的函數(shù)。扇出過(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等造成壓力。 623:設(shè)計(jì)高扇入、合理扇出(小于7)的函數(shù)。所以過(guò)小的函數(shù),特別是扇入很低的或功能不明確的函數(shù),不值得單獨(dú)存在。 622:功能不明確較小的函數(shù),特別是僅有一個(gè)上級(jí)函數(shù)調(diào)用它時(shí),應(yīng)考慮把它合并到上級(jí)函數(shù)中,而不必單獨(dú)存在。說(shuō)明:若此段代碼各語(yǔ)句之間有實(shí)質(zhì)性關(guān)聯(lián)并且是完成同一件功能的,那么可考慮把此段代碼構(gòu)造成一個(gè)新的函數(shù)。 /* 初始化“點(diǎn)”的坐標(biāo) */}189。 /* 初始化矩形的長(zhǎng)與寬 */}void Init_Point( void ){ = 10。應(yīng)如下分為兩個(gè)函數(shù):void Init_Rect( void ){ = 0。 = 10。 = 0。示例:如下函數(shù)就是一種隨機(jī)內(nèi)聚。在編程時(shí),經(jīng)常遇到在不同函數(shù)中使用相同的代碼,許多開(kāi)發(fā)人員都愿把這些代碼提出來(lái),并構(gòu)成一個(gè)新函數(shù)。隨機(jī)內(nèi)聚給函數(shù)或過(guò)程的維護(hù)、測(cè)試及以后的升級(jí)等造成了不便,同時(shí)也使函數(shù)或過(guò)程的功能不明確。說(shuō)明:防止函數(shù)或過(guò)程內(nèi)出現(xiàn)隨機(jī)內(nèi)聚。189。 619:避免函數(shù)中不必要語(yǔ)句,防止程序中的垃圾代碼。說(shuō)明:因?yàn)閿?shù)據(jù)類型轉(zhuǎn)換或多或少存在危險(xiǎn)。189。189。189。建議615:函數(shù)的返回值要清楚、明了,讓使用者不容易忽視錯(cuò)誤情況。建議614:避免使用無(wú)意義或含義不清的動(dòng)詞為函數(shù)命名。int input_record( void ) 。示例:參照如下方式命名函數(shù)。 613:使用動(dòng)賓詞組為執(zhí)行某操作的函數(shù)命名。 612:函數(shù)名應(yīng)準(zhǔn)確描述函數(shù)的功能。函數(shù)在使用輸入之前,應(yīng)進(jìn)行必要的檢查。 611:檢查函數(shù)所有非參數(shù)輸入的有效性,如數(shù)據(jù)文件、公共變量等。 610:檢查函數(shù)所有參數(shù)輸入的有效性。}int sub( int a, int b ) { return (a