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

正文內(nèi)容

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

2025-08-08 10:39上一頁面

下一頁面
  

【正文】 行,對軟件透明),所有對齊方式下 CPU的運行效率明顯快多了。那么如下函數(shù)不具有可重入性。 [申請信號量操作 ] // 若申請不到 “信號量 ”,說明另外的進程正處于 Exam = para。61:防止將函數(shù)的參數(shù)作為工作變量 說明:將函數(shù)的參數(shù)作為工作變量,有可能錯誤地改變參數(shù)內(nèi)容,所以很危險。 // sum 成了工作變量,不太好。 } *sum = sum_temp。 改為如下就很清晰了。66:函數(shù)的功能應(yīng)該是可以預(yù)測的,也就是只要輸入數(shù)據(jù)相同就應(yīng)產(chǎn)生同樣的輸出 說明:帶有內(nèi)部 “存儲器 ”的函數(shù)的功能可能是不可預(yù)測的,因為它的輸出可能取決于內(nèi)部存儲器(如某標記)的狀態(tài)。 for (index = 1。 示例:如下是在 DOS下 TASM 的匯編程序例子。非調(diào)度函數(shù)的控制參數(shù)增加了函數(shù)間的控制耦合,很可能使函數(shù)間的耦合度增大,并使函數(shù)的功能不唯一。610:檢查函數(shù)所有參數(shù)輸入的有效性 189。 int input_record( void ) 。 189。若這些代碼關(guān)聯(lián)較大并且是完成一個功能的,那么這種構(gòu)造是合理的,否則這種構(gòu)造將產(chǎn)生隨機內(nèi)聚的函數(shù)。 = 0。 189。公共模塊中的函數(shù)及底層函數(shù)應(yīng)該有較高的扇入。 189。 ( 8)提高函數(shù)內(nèi)聚。628:避免使用 BOOL參數(shù) 說明:原因有二,其一是 BOOL參數(shù)值無意義, TURE/FALSE的含義是非常模糊的,在調(diào)用時很難知道該參數(shù)到底傳達的是什么意思;其二是 BOOL參數(shù)值不利于擴充。7 2:在同一項目組或產(chǎn)品組內(nèi),調(diào)測打印出的信息串的格式要有統(tǒng)一的形式。7 5:使用斷言來發(fā)現(xiàn)軟件問題,提高代碼可測性 說明:斷言是對某種假設(shè)條件進行檢查(可理解為若條件成立則無動作,否則應(yīng)報告),它可以快速發(fā)現(xiàn)并定位軟件問題,同時對系統(tǒng)錯誤進行自動報警。7 6:用斷言來檢查程序正常運行 時不應(yīng)發(fā)生但在調(diào)測時有可能發(fā)生的非法情況 185。 // 用斷言檢查 “假設(shè)指針不為空 ”這個條件 ... //other program code } 185。7 9:用斷言確認函數(shù)的參數(shù) 示例:假設(shè)某函數(shù)參數(shù)中有一個指針,那么使用指針前可對它檢查, 如下。 } define EXAM_ASSERT( condition ) if (condition) // 若條件成立,則無動作 NULL。7 4:在進行集成測試 /系統(tǒng)聯(lián)調(diào)之前,要構(gòu)造好測試環(huán)境、測試項目及測試用例,同時仔細分析并優(yōu)化測試用例,以提高測試效率 說明:好的測試用例應(yīng)盡可能模擬出程序所遇到的邊界值、各種復(fù)雜環(huán)境及一些極端情況等。7 1:在同一項目組或產(chǎn)品組內(nèi),要有一套統(tǒng)一的為集成測試與系統(tǒng)聯(lián)調(diào)準備的調(diào)測開關(guān)及相應(yīng)打印函數(shù),并且要有詳細的說明 說明:本規(guī)則是針對項目組或產(chǎn)品組的。如 DOS下 BC 和 MSC等就不具備可重入函數(shù)庫,因為 DOS是單用戶單任務(wù)操作系統(tǒng)。 ( 6)不同層次的函數(shù)調(diào)用要有較合理的扇入、扇出。625:仔細分析模塊的功能及性能需求,并進一步細分,同時若有必要畫出有關(guān)數(shù)據(jù)流圖,據(jù)此來進行模塊的函數(shù)劃分與組織 說明:函數(shù)的劃分與組織是模塊的實現(xiàn)過程中很關(guān)鍵的步驟,如何劃分出合理的函數(shù)結(jié)構(gòu),關(guān)系到模塊的最終效率和可維護性、可測性等。當然分解 或合并函數(shù)時,不能改變要實現(xiàn)的功能,也不能違背函數(shù)間的獨立性。622:功能不明確較小的函數(shù),特別是僅有一個上級函數(shù)調(diào)用它時,應(yīng)考慮把它合并到上級函數(shù)中,而不必單獨存在 說明:模塊中函數(shù)劃分的過多,一般會使函數(shù)間的接口變得復(fù)雜。 /* 初始化 “點 ”的坐標 */ } 矩形的長、寬與點的坐標基本沒有任何關(guān)系,故以上函數(shù)是隨機內(nèi)聚。使用隨機內(nèi)聚函數(shù),常常容易出現(xiàn)在一種應(yīng)用場合需要改進此函數(shù),而另一種應(yīng)用場合又不允許這種改進,從而陷入困境。617:讓函數(shù)在調(diào)用點顯得易懂、容易理解 189。如果是 OOP方法,可以只有動詞(名詞是對象本身) 示例:參照如下方式命名函數(shù)。 } int sub( int a, int b ) { return (a b)。調(diào)度函數(shù)是指根據(jù)輸入的消息類型或控制命令,來啟動相應(yīng)的功能實體(即函數(shù)或過程),而本身并不完成具體功能。由于目前大部分高級語言都是結(jié)構(gòu)化的,所以通過具體語言的語法要求與編譯器功能,基本就可以防止這種情況發(fā)生。 // 注意,是 static類型的。65:不要設(shè)計多用途面面俱到的函數(shù) 說明:多功能集于一身的函數(shù),很可能使函數(shù)的理解、測試、維護等變得困難。 示例:如下語句的功能不很明顯。 count num。 count num。6 5:在同一項目組應(yīng)明確規(guī)定對接口函數(shù)參數(shù)的合法性檢查應(yīng)由函數(shù)的調(diào)用 者負責(zé)還是由接口函數(shù)本身負責(zé),缺省是由函數(shù)調(diào)用者負責(zé) 說明:對于模塊間接口函數(shù)的參數(shù)的合法性檢查這一問題,往往有兩個極端現(xiàn)象,即:要么是調(diào)用者和被調(diào)用者對參數(shù)均不作合法性檢查,結(jié)果就遺漏了合法性檢查這一必要的處理過程,造成問題隱患;要么就是調(diào)用者和被調(diào)用者均對參數(shù)進行合法性檢查,這種情況雖不會造成問題,但產(chǎn)生了冗余代碼,降低了效率。此函數(shù)應(yīng)如下改進。6 4:編寫可重入函數(shù)時,若使用全局變量,則應(yīng)通過關(guān)中斷、信號量(即 P、 V操作)等手段對其加以保護 說明:若對所使用的全局變量不加以保護,則此函數(shù)就不具有可重入性,即當多個進程調(diào)用此函數(shù)時 ,很有可能使有關(guān)全局變量變?yōu)椴豢芍獱顟B(tài)。 內(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ù)及位域的方式。515:當聲明用于分布式環(huán)境或不同 CPU間通信環(huán)境的數(shù)據(jù)結(jié)構(gòu)時,必須考慮機器的字節(jié)順序、使用的位域及字節(jié)對齊等問題 說明: 比如 Intel CPU與 68360 CPU,在處理位域及整數(shù)時,其在內(nèi)存存放的 “順序 ”正好相反。 下面的聲明可使數(shù)據(jù)類型的使用簡潔、明了。 exam = chr。這些細節(jié)對程序質(zhì)量的保證非常重要。 unsigned int set_flg: 1。57:仔細設(shè)計結(jié)構(gòu)中元素的布局與排列順序,使結(jié)構(gòu)容易理解、節(jié)省占用空間,并減少引起誤用現(xiàn)象 說明:合理排列結(jié)構(gòu)中元素順序,可節(jié)省空間并增加可理解性。 typedef struct PERSON_ADDRESS_STRU { unsigned char addr[40]。 189。 由于兩個結(jié)構(gòu)都是描述同一事物的,那么不如合成一個結(jié)構(gòu)。 unsigned char addr[40]。 1 MALE */ unsigned int teacher_ind。 1 MALE */ } TEACHER。 1 MALE */ unsigned char teacher_name[8]。 示例:如下結(jié)構(gòu)不太清晰、合理。 189。 185。 185。 應(yīng)分別改為如下 : *stat_poi += 1。 = 5。 ... // program code } 189。 d = a | ( b c) amp。 c a | b c amp。4 1:注意運算符的優(yōu)先級,并用括號明確表達式的操作順序,避免使用默認優(yōu)先級 說明:防止閱讀程序時產(chǎn)生誤解,防止因默認的優(yōu)先級與設(shè)計思想不符而導(dǎo)致程序出錯。 189。3 5:命名規(guī)范必須與所使用的系統(tǒng)風(fēng)格保持一致,并在同一項目中統(tǒng)一,比如采用 UNIX的全小寫加下劃線的風(fēng)格或大小寫混排的方式,不要使用大小寫與下劃線混排的方式,用作特殊標識如標識成員變量或全局變量的 m_和 g_,其后加上大小寫混排的方式是允許的 示例: Add_User不允許, add_user、 AddUser、 m_AddUser允許。 185。 示例:如下單詞的縮寫能夠被大家基本認可。 /* if mtp receive a message from links */ if (receive_flag) 189。 ... 189。 // now jump into case CMD_A } case CMD_A: ProcessA()。2 15:對于 switch語句下的 case語句,如果因為特殊情況需要處理完一個 case后進入下一個 case處理,必須在該 case語句處理完、下一個 case語句前加上明確的注釋 說明:這樣比較清楚程序編寫者的意圖,有效防止無故遺漏 break語句。2 12:注釋與所描述內(nèi)容進行同樣的縮排 說明:可使程序排版整齊,并方便注釋的閱讀與理解。變量、常量、宏的注釋應(yīng)放在其上方相鄰位置或右方 示例: /* active statistic task number */ define MAX_ACT_TASK_NUMBER 1000 define MAX_ACT_TASK_NUMBER 1000 /* active statistic task number */ 185。 例 1: /* get replicate sub system index and indicator */ repssn_ind = ssn_data[index].repssn_index。 Output: // 對輸出參數(shù)的說明。 /************************************************* Copyright (C), 19881999, Huawei Tech. Co., Ltd. File name: // 文件名 Author: Version: Date: // 作者、版本及完成日期 Description: // 用于詳細說明此程序文件完成的主要功能,與其他模塊 // 或函數(shù)的接口,輸出值、取值范圍、含義及參數(shù)間的控 // 制、順序、獨立或依賴等關(guān)系 Others: // 其它內(nèi)容的說明 Function List: // 主要函數(shù)列表,每條記錄應(yīng)包括函數(shù)名及功能簡要說明 1. .... History: // 修改歷史記錄列表,每條修改記錄應(yīng)包括修改日期、修改 // 作 者及修改內(nèi)容簡述 1. Date: Author: Modification: 2. ... *************************************************/ 185。 if (a = b amp。 // 內(nèi)容操作 *與內(nèi)容之間 flag = !isEmpty。位域操作符、 ^等雙目操作符的前后加空格。 說明:采用這種松散方式編寫代碼的目的是使代碼更加清晰 由于留空 格所產(chǎn)生的清晰性是相對的,所以,在已經(jīng)非常清晰的語句中沒有必要再留空格,如果語句已足夠清晰則括號內(nèi)側(cè) (即左括號后面和右括號前面 )不需要加空格,多重括號間不必加空格,因為在 C/C++語言中括號已經(jīng)是最清晰的標志了。1 8:對齊只使用空格鍵,不使用 TAB鍵 說明:以免用不同的編輯器閱讀程序時,因 TAB鍵所設(shè)置的空格數(shù)目不同而造成程序布局不整齊,不要使用 BC 作為編輯器合版本,因為 BC 會自動將 8 個空格變?yōu)橐粋€ TAB鍵,因此使用 BC 合入的版本大多會將縮進變亂。 = 0。 i++, j++) { ... // program code } 185。 (n7stat_stat_item_valid (stat_item))) { ... // program code } for (i = 0, j = 0。 report_or_not_flag = ((taskno MAX_ACT_TASK_NUMBER) amp。 repssn_ni = ssn_data[index].ni。1 1:程序塊要采用縮進風(fēng)格編寫,縮進的空格數(shù)為 4 個 說明:對于由開發(fā)工具自動生成的代碼可以有不一致。 repssn_ni = ssn_data[index].ni。amp。 (j )。 (act_task_table[taskno].stat_object), sizeof (_STAT_OBJECT))。 185。1 10:程序塊的分界符(如 C/C++語言的大括號 ?{?和 ?}?)應(yīng) 各獨占一行并且位于同一列,同時與引用它們的語句左對齊。 示例: (1) 逗號、分號只在后面加空格。 a = b ^ 2。 // 地址操作 amp。11:一行程序以小于 80字符為
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1