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

正文內(nèi)容

《it網(wǎng)絡(luò)設(shè)備公司軟件編程規(guī)范和范例(華為)》(文件)

2025-07-19 10:39 上一頁面

下一頁面
 

【正文】 如下,可能更合理些。 1 MALE */ } TEACHER。 /* student39。 1 MALE */ unsigned int teacher_ind。 189。 unsigned char addr[40]。 typedef struct PERSON_TWO_STRU { unsigned char name[8]。 由于兩個結(jié)構(gòu)都是描述同一事物的,那么不如合成一個結(jié)構(gòu)。 unsigned char addr[40]。 189。 typedef struct PERSON_BASE_INFO_STRU { unsigned char name[8]。 typedef struct PERSON_ADDRESS_STRU { unsigned char addr[40]。 typedef struct PERSON_STRU { PERSON_BASE_INFO person_base。57:仔細設(shè)計結(jié)構(gòu)中元素的布局與排列順序,使結(jié)構(gòu)容易理解、節(jié)省占用空間,并減少引起誤用現(xiàn)象 說明:合理排列結(jié)構(gòu)中元素順序,可節(jié)省空間并增加可理解性。 unsigned int set_flg: 1。 unsigned int set_flg: 1。58:結(jié)構(gòu)的設(shè)計要盡量考慮向前兼容和以后的版本升級,并為某些未來可能的應(yīng)用保留余地(如預(yù)留一些空間等) 說明:軟件向前兼容的特性,是軟件產(chǎn)品是否成功的重要標志之一。這些細節(jié)對程序質(zhì)量的保證非常重要。511:對編譯系統(tǒng)默認的數(shù)據(jù)類型轉(zhuǎn)換,也要有充分的認識 示例:如下賦值,多數(shù)編譯器不產(chǎn)生告警,但值的含義還是稍有變化。 exam = chr。513:合理地設(shè)計數(shù)據(jù)并使用自定義數(shù)據(jù)類型,避免數(shù)據(jù)間進行不必要的類型轉(zhuǎn)換 189。 下面的聲明可使數(shù)據(jù)類型的使用簡潔、明了。 下面的聲明可使數(shù)據(jù)類型具有更豐富的含義。515:當聲明用于分布式環(huán)境或不同 CPU間通信環(huán)境的數(shù)據(jù)結(jié)構(gòu)時,必須考慮機器的字節(jié)順序、使用的位域及字節(jié)對齊等問題 說明: 比如 Intel CPU與 68360 CPU,在處理位域及整數(shù)時,其在內(nèi)存存放的 “順序 ”正好相反。 /* bit 0 7 */ unsigned int A2: 1。 內(nèi)存: 0 1 2 ... (從低到高,以字節(jié)為單位) exam exam 低字節(jié) exam 高字節(jié) 內(nèi)存: 0 bit 1 bit 2 bit ... (字節(jié)的各 “位 ”) EXAM_BIT A1 A2 A3 如下是 68360 CPU生成短整數(shù)及位域的方式。6 1:對所調(diào)用函數(shù)的錯誤返回碼要仔細 、全面地處理 185。6 4:編寫可重入函數(shù)時,若使用全局變量,則應(yīng)通過關(guān)中斷、信號量(即 P、 V操作)等手段對其加以保護 說明:若對所使用的全局變量不加以保護,則此函數(shù)就不具有可重入性,即當多個進程調(diào)用此函數(shù)時 ,很有可能使有關(guān)全局變量變?yōu)椴豢芍獱顟B(tài)。 Exam = para。此函數(shù)應(yīng)如下改進。 // 信號),本進程必須等待其釋放信號后,才可繼 [釋放信號量操作 ] // 續(xù)執(zhí)行。6 5:在同一項目組應(yīng)明確規(guī)定對接口函數(shù)參數(shù)的合法性檢查應(yīng)由函數(shù)的調(diào)用 者負責還是由接口函數(shù)本身負責,缺省是由函數(shù)調(diào)用者負責 說明:對于模塊間接口函數(shù)的參數(shù)的合法性檢查這一問題,往往有兩個極端現(xiàn)象,即:要么是調(diào)用者和被調(diào)用者對參數(shù)均不作合法性檢查,結(jié)果就遺漏了合法性檢查這一必要的處理過程,造成問題隱患;要么就是調(diào)用者和被調(diào)用者均對參數(shù)進行合法性檢查,這種情況雖不會造成問題,但產(chǎn)生了冗余代碼,降低了效率。 示例:下函數(shù)的實現(xiàn)不太好。 count num。 void sum_data( unsigned int num, int *data, int *sum ) { unsigned int count 。 count num。62:函數(shù)的規(guī)模盡量限制在 200行以內(nèi) 說明:不包括注釋和空格行。 示例:如下語句的功能不很明顯。 } value = max (a, b)。65:不要設(shè)計多用途面面俱到的函數(shù) 說明:多功能集于一身的函數(shù),很可能使函數(shù)的理解、測試、維護等變得困難。在 C/C++語言中,函數(shù)的 static 局部變量是函數(shù)的內(nèi)部存儲器,有可能使函數(shù)的功能不可預(yù)測,然而,當某函數(shù)的返回值為指 針類型時,則必須是STATIC 的局部變量的地址作為返回值,若為 AUTO類,則返回為錯針。 // 注意,是 static類型的。 index++) { sum += index。由于目前大部分高級語言都是結(jié)構(gòu)化的,所以通過具體語言的語法要求與編譯器功能,基本就可以防止這種情況發(fā)生。 ... // 程序代碼 proc Print_Msg // 過程(函數(shù)) Print_Msg ... // 程序代碼 jmp LABEL ... // 程序代碼 endp proc Input_Msg // 過程(函數(shù)) Input_Msg ... // 程序代碼 LABEL: ... // 程序代碼 endp 189。調(diào)度函數(shù)是指根據(jù)輸入的消息類型或控制命令,來啟動相應(yīng)的功能實體(即函數(shù)或過程),而本身并不完成具體功能。 int add_sub( int a, int b, unsigned char add_sub_flg ) { if (add_sub_flg == INTEGER_ADD) { return (a + b)。 } int sub( int a, int b ) { return (a b)。函數(shù)在使用輸入之前,應(yīng)進行必要的檢查。如果是 OOP方法,可以只有動詞(名詞是對象本身) 示例:參照如下方式命名函數(shù)。 建議 614:避免使用無意義或含義不清的動詞為函數(shù)命名 說明:避免用含義不清的動詞如 process、 handle等為函數(shù)命名,因為這些動詞并沒有說明要具體做什么。617:讓函數(shù)在調(diào)用點顯得易懂、容易理解 189。 189。使用隨機內(nèi)聚函數(shù),常常容易出現(xiàn)在一種應(yīng)用場合需要改進此函數(shù),而另一種應(yīng)用場合又不允許這種改進,從而陷入困境。 void Init_Var( void ) { = 0。 /* 初始化 “點 ”的坐標 */ } 矩形的長、寬與點的坐標基本沒有任何關(guān)系,故以上函數(shù)是隨機內(nèi)聚。 = 10。622:功能不明確較小的函數(shù),特別是僅有一個上級函數(shù)調(diào)用它時,應(yīng)考慮把它合并到上級函數(shù)中,而不必單獨存在 說明:模塊中函數(shù)劃分的過多,一般會使函數(shù)間的接口變得復(fù)雜。 扇出過大,表明函數(shù)過分復(fù)雜,需要控制和協(xié)調(diào)過多的下級函數(shù);而扇出過小,如總是 1,表明函數(shù)的調(diào)用層次可能過多,這樣不利程序閱讀和函數(shù)結(jié)構(gòu)的分析,并且程序運行時會對系統(tǒng)資源如堆棧空間等造成壓力。當然分解 或合并函數(shù)時,不能改變要實現(xiàn)的功能,也不能違背函數(shù)間的獨立性。 189。625:仔細分析模塊的功能及性能需求,并進一步細分,同時若有必要畫出有關(guān)數(shù)據(jù)流圖,據(jù)此來進行模塊的函數(shù)劃分與組織 說明:函數(shù)的劃分與組織是模塊的實現(xiàn)過程中很關(guān)鍵的步驟,如何劃分出合理的函數(shù)結(jié)構(gòu),關(guān)系到模塊的最終效率和可維護性、可測性等。 ( 2)仔細考查模塊或函數(shù)出錯處理及模塊的性能要求并進行完善。 ( 6)不同層次的函數(shù)調(diào)用要有較合理的扇入、扇出。 189。如 DOS下 BC 和 MSC等就不具備可重入函數(shù)庫,因為 DOS是單用戶單任務(wù)操作系統(tǒng)。 189。7 1:在同一項目組或產(chǎn)品組內(nèi),要有一套統(tǒng)一的為集成測試與系統(tǒng)聯(lián)調(diào)準備的調(diào)測開關(guān)及相應(yīng)打印函數(shù),并且要有詳細的說明 說明:本規(guī)則是針對項目組或產(chǎn)品組的。 185。7 4:在進行集成測試 /系統(tǒng)聯(lián)調(diào)之前,要構(gòu)造好測試環(huán)境、測試項目及測試用例,同時仔細分析并優(yōu)化測試用例,以提高測試效率 說明:好的測試用例應(yīng)盡可能模擬出程序所遇到的邊界值、各種復(fù)雜環(huán)境及一些極端情況等。實際應(yīng)用時,可根據(jù)具體情況靈活地設(shè)計斷言。 } define EXAM_ASSERT( condition ) if (condition) // 若條件成立,則無動作 NULL。如某模塊收到其它模塊或鏈路上的消息后,要對消息的合理性進行檢查,此過程為正常的錯誤檢查,不能用斷言來實現(xiàn)。7 9:用斷言確認函數(shù)的參數(shù) 示例:假設(shè)某函數(shù)參數(shù)中有一個指針,那么使用指針前可對它檢查, 如下。但當前的版本中僅實現(xiàn)了 “無連接 ”業(yè)務(wù),且在此版本的正式發(fā)行版中,用戶(上層模塊)不應(yīng)產(chǎn)。 // 用斷言檢查 “假設(shè)指針不為空 ”這個條件 ... //other program code } 185。7 8:對較復(fù)雜的斷言加上明確的注釋 說明:為復(fù)雜的斷言加注釋,可澄清斷言含義并減少不必要的誤用。7 6:用斷言來檢查程序正常運行 時不應(yīng)發(fā)生但在調(diào)測時有可能發(fā)生的非法情況 185。(其中 NULL為 0L) ifdef _EXAM_ASSERT_TEST_ // 若使用斷言測試 void exam_assert( char * file_name, unsigned int line_no ) { printf( \n[EXAM]Assert failed: %s, line %u\n, file_name, line_no )。7 5:使用斷言來發(fā)現(xiàn)軟件問題,提高代碼可測性 說明:斷言是對某種假設(shè)條件進行檢查(可理解為若條件成立則無動作,否則應(yīng)報告),它可以快速發(fā)現(xiàn)并定位軟件問題,同時對系統(tǒng)錯誤進行自動報警。測試代碼部分應(yīng)作為(模塊中的)一個子模塊,以方便測試代碼在模塊中的安裝與拆卸(通過調(diào)測開關(guān) ) 說明:為單元測試而準備。7 2:在同一項目組或產(chǎn)品組內(nèi),調(diào)測打印出的信息串的格式要有統(tǒng)一的形式。630:當一個過程(函數(shù))中對較長變量(一般是結(jié)構(gòu)的成員)有較多引用時,可以用一個意義相當?shù)暮甏? 說明:這樣可以增加編程效率和程序的可讀性。628:避免使用 BOOL參數(shù) 說明:原因有二,其一是 BOOL參數(shù)值無意義, TURE/FALSE的含義是非常模糊的,在調(diào)用時很難知道該參數(shù)到底傳達的是什么意思;其二是 BOOL參數(shù)值不利于擴充。在多任務(wù)操 作系統(tǒng)中,函數(shù)是否具有可重入性是非常重要的,因為這是多個進程可以共用此函數(shù)的必要條件。 ( 8)提高函數(shù)內(nèi)聚。 ( 4)考查函數(shù)的規(guī)模,過大的要進行分解。 189。故除非為某些算法或功能的實現(xiàn)方便,應(yīng)減少沒必要的遞歸調(diào)用。公共模塊中的函數(shù)及底層函數(shù)應(yīng)該有較高的扇入。扇出太大,一般是由于缺乏中間層次,可適當增加中間層次的函數(shù)。 189。621:如果多段代碼重復(fù)做同一件事情,那么在函數(shù)的劃分上可能存在問題 說明:若此段代碼各語句之間有實質(zhì)性關(guān)聯(lián)并且是完成同一件功能的,那么可考慮把此段代碼構(gòu)造成一個新的函數(shù)。 = 0。 /* 初始化矩形的長與寬 */ = 10。若這些代碼關(guān)聯(lián)較大并且是完成一個功能的,那么這種構(gòu)造是合理的,否則這種構(gòu)造將產(chǎn)生隨機內(nèi)聚的函數(shù)。隨機內(nèi)聚是指將沒有關(guān)聯(lián)或關(guān)聯(lián)很弱的語句放到同一個函數(shù)或過程中。 189。 189。 int input_record( void ) 。612:函數(shù)名應(yīng)準確描述函數(shù)的功能 189。610:檢查函數(shù)所有參數(shù)輸入的有效性 189。 } } 不如分為如下兩個函數(shù)清晰。非調(diào)度函數(shù)的控制參數(shù)增加了函數(shù)間的控制耦合,很可能使函數(shù)間的耦合度增大,并使函數(shù)的功能不唯一。 189。 示例:如下是在 DOS下 TASM 的匯編程序例子。 } 189。 for (index = 1。 unsigned int integer_sum( unsigned int base ) { unsigned int index。66:函數(shù)的功能應(yīng)該是可以預(yù)測的,也就是只要輸入數(shù)據(jù)相同就應(yīng)產(chǎn)生同樣的輸出 說明:帶有內(nèi)部 “存儲器 ”的函數(shù)的功能可能是不可預(yù)測的,因為它的輸出可能取決于內(nèi)部存儲器(如某標記)的狀態(tài)。 define MAX (a, b) (((a) (b)) ? (a) : (b)) value = MAX (a, b)。 改為如下就很清晰了。63:一個函數(shù)僅完成一件 功能 189。 } *sum = sum_temp。 sum_temp = 0。 // sum 成了工作變量,不太好。 *sum = 0。61:防止將函數(shù)的參數(shù)作為工作變量 說明:將函數(shù)的參數(shù)作為工作變量,有可能錯誤地改變參數(shù)內(nèi)容,所以很危險。 return temp。 [申請信號量操作 ] // 若申請不到 “信號量 ”,說明另外的進程正處于 Exam = para。 return temp。那么如下函數(shù)不具有可重入性。6 3:編寫可重入函數(shù)時,應(yīng)注意局
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1