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

正文內(nèi)容

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

  

【正文】 _poi += 1。 其中,函數(shù) Input_Rec、 Stat_Score都可修改變量 Score,故此變量將引起函數(shù)間較大的耦合,并可能增加代碼測(cè)試、維護(hù)的難度。結(jié)構(gòu)中的各元素應(yīng)代表同一事務(wù)的不同側(cè)面,而不應(yīng)把描述沒(méi)有關(guān)系或關(guān)系很弱的不同事務(wù)的元素放到同一結(jié)構(gòu)中。 /* teacher sex, as follows */ /* 0 FEMALE。 typedef struct PERSON_ONE_STRU { unsigned char name[8]。 } PERSON。 189。59:留心具體語(yǔ)言及編譯器處理不同數(shù)據(jù)類型的原則及有關(guān)細(xì)節(jié) 說(shuō)明:如在 C 語(yǔ)言中, static局部變量將在內(nèi)存 “數(shù)據(jù)區(qū) ”中生成,而非 static局部變量將在 “堆棧 ”中生成。 示例: 可參考如下方式聲明自定義數(shù)據(jù)類型。 如下是 Intel CPU生成短整數(shù)及位域的方式。 } 此函數(shù)若被多個(gè)進(jìn)程調(diào)用的話,其結(jié)果可能是未知的,因?yàn)楫?dāng)( **)語(yǔ)句剛執(zhí)行完后,另外一個(gè)使用本函數(shù)的進(jìn) 程可能正好被激活,那么當(dāng)新激活的進(jìn)程執(zhí)行到此函數(shù)時(shí),將使 Exam 賦與另一個(gè)不同的 para值,所以當(dāng)控制重新回到 “temp = Square_Exam( )”后,計(jì)算出的 temp很可能不是預(yù)想中的結(jié)果。 for (count = 0。64:為簡(jiǎn)單功能編寫函數(shù) 說(shuō)明:雖然為僅用一兩行就可完成的功能去編函數(shù)好象沒(méi)有必要,但用函數(shù)可使功能明確化,增加程序可讀性,亦可方便維護(hù)、測(cè)試。 static unsigned int sum = 0。69:非調(diào)度函數(shù)應(yīng)減少或防止控制參數(shù),盡量只使用數(shù)據(jù)參數(shù) 說(shuō)明:本建議目的是防止函數(shù)間的控制耦合。613:使用動(dòng)賓詞組為執(zhí)行某操作的函數(shù)命名。隨機(jī)內(nèi)聚給函數(shù)或過(guò)程的維護(hù)、測(cè)試及以后的升級(jí)等造成了不便,同時(shí)也使函數(shù)或過(guò)程的功能不明確。 189。 189。另外,編譯器是否提供可重入函數(shù)庫(kù),與它所服務(wù)的操作系統(tǒng)有關(guān),只有操作系統(tǒng)是多任務(wù)時(shí),編譯器才有可能提供可重入函數(shù)庫(kù)。 185。 185。7 7:不能用斷言來(lái)檢查最終產(chǎn)品肯定會(huì)出現(xiàn)且必須處理的錯(cuò)誤情況 說(shuō)明:斷言是用來(lái)處理不應(yīng)該發(fā)生的錯(cuò)誤情況的,對(duì)于可能會(huì)發(fā)生的且必須處理的情況要寫防錯(cuò)程序,而不是斷言。信息串中至少要有所在模塊名(或源文件名)及行號(hào) 說(shuō)明:統(tǒng)一的調(diào)測(cè)信息格式便于集成測(cè)試。(單一功能的函數(shù)內(nèi)聚最高) 說(shuō)明:對(duì)初步劃分后的函數(shù)結(jié)構(gòu)應(yīng)進(jìn)行改進(jìn)、優(yōu)化,使之更為合理。 較良好的軟件結(jié)構(gòu)通常是頂層函數(shù)的扇出較高,中層函數(shù)的扇出較少,而底層函數(shù)則扇入到公共模塊中。 /* 初始化矩形的長(zhǎng)與寬 */ } void Init_Point( void ) { = 10。619:避免函數(shù)中不必要語(yǔ)句,防止程序中的垃圾代碼 說(shuō)明:程序中的垃圾代碼不僅占用額外的空間,而且還常常影響程序的功能與性能,很可能給程序的測(cè)試、維護(hù)等造成不必要的麻煩。611:檢查函數(shù)所有非參數(shù)輸入的有效性,如數(shù)據(jù)文件、公共變量等 說(shuō)明:函數(shù)的輸入主要有兩種:一種是參數(shù)輸入;另一種是全局變量、數(shù)據(jù)文件的輸入,即非參數(shù)輸入。過(guò)程 Print_Msg的實(shí)現(xiàn)依賴于 Input_Msg的具體實(shí)現(xiàn),這種程序是非結(jié)構(gòu)化的,難以維護(hù)、修改。這樣的函數(shù)既不易于理解又不利于測(cè)試和維護(hù)。 } 189。對(duì)必須改變的參數(shù),最好先用局部變量代之,最后再將該局部變量的內(nèi)容賦 給該參數(shù)。 unsigned int example( int para ) { unsigned int temp。 typedef struct EXAM_BIT_STRU { /* Intel 68360 */ unsigned int A1: 1。512:盡量減少?zèng)]有必要的數(shù)據(jù)類型默認(rèn)轉(zhuǎn)換與強(qiáng)制轉(zhuǎn)換 189。 189。 } PERSON_ADDRESS。 unsigned char sex。54:不要設(shè)計(jì)面面俱到、非常靈活的數(shù)據(jù)結(jié)構(gòu) 說(shuō)明:面面俱到、靈活的數(shù)據(jù)結(jié)構(gòu)反而容易引起誤解和操作困難。 /* his teacher sex */ } STUDENT。 void main() { register int index。53:明確公共變量與操作此公共變量的函數(shù)或過(guò)程的關(guān)系,如訪問(wèn)、修改及創(chuàng)建等 說(shuō)明:明確過(guò)程操作變量的關(guān)系后,將有利于程序的進(jìn)一步優(yōu)化、單元測(cè)試、系統(tǒng)聯(lián)調(diào)以及代碼維護(hù)等。 189。4 2:避免使用不易理解的數(shù)字,用有意義的標(biāo)識(shí)來(lái)替代。 (a amp。 define _EXAMPLE_0_TEST_ define _EXAMPLE_1_TEST_ void set_sls00( BYTE sls )。 statistic 可縮寫為 stat 。22:通過(guò)對(duì)函數(shù)或過(guò)程、變量、結(jié)構(gòu)等正確的命名以及合理地組織代碼的結(jié)構(gòu),使代碼成為自注釋的 說(shuō)明:清晰準(zhǔn)確的函數(shù)、變量等的命名,可增加代碼可讀性,并減少不必要的注釋。 case CMD_DOWN: ProcessDown()。 /* sccp interface with sccp user primitive message name */ enum SCCP_USER_PRIMITIVE { N_UNITDATA_IND, /* sccp notify sccp user unit data e */ N_NOTICE_IND, /* sccp notify user the work can not */ /* transmission this message */ N_UNITDATA_REQ, /* sccp user39。不再有用的注釋要?jiǎng)h除 185。11:一行程序以小于 80字符為宜,不要寫得過(guò)長(zhǎng)。 a = b ^ 2。1 10:程序塊的分界符(如 C/C++語(yǔ)言的大括號(hào) ?{?和 ?}?)應(yīng) 各獨(dú)占一行并且位于同一列,同時(shí)與引用它們的語(yǔ)句左對(duì)齊。 (act_task_table[taskno].stat_object), sizeof (_STAT_OBJECT))。amp。1 1:程序塊要采用縮進(jìn)風(fēng)格編寫,縮進(jìn)的空格數(shù)為 4 個(gè) 說(shuō)明:對(duì)于由開(kāi)發(fā)工具自動(dòng)生成的代碼可以有不一致。 report_or_not_flag = ((taskno MAX_ACT_TASK_NUMBER) amp。 i++, j++) { ... // program code } 185。1 8:對(duì)齊只使用空格鍵,不使用 TAB鍵 說(shuō)明:以免用不同的編輯器閱讀程序時(shí),因 TAB鍵所設(shè)置的空格數(shù)目不同而造成程序布局不整齊,不要使用 BC 作為編輯器合版本,因?yàn)?BC 會(huì)自動(dòng)將 8 個(gè)空格變?yōu)橐粋€(gè) TAB鍵,因此使用 BC 合入的版本大多會(huì)將縮進(jìn)變亂。位域操作符、 ^等雙目操作符的前后加空格。 if (a = b amp。 Output: // 對(duì)輸出參數(shù)的說(shuō)明。變量、常量、宏的注釋應(yīng)放在其上方相鄰位置或右方 示例: /* active statistic task number */ define MAX_ACT_TASK_NUMBER 1000 define MAX_ACT_TASK_NUMBER 1000 /* active statistic task number */ 185。2 15:對(duì)于 switch語(yǔ)句下的 case語(yǔ)句,如果因?yàn)樘厥馇闆r需要處理完一個(gè) case后進(jìn)入下一個(gè) case處理,必須在該 case語(yǔ)句處理完、下一個(gè) case語(yǔ)句前加上明確的注釋 說(shuō)明:這樣比較清楚程序編寫者的意圖,有效防止無(wú)故遺漏 break語(yǔ)句。 ... 189。 示例:如下單詞的縮寫能夠被大家基本認(rèn)可。3 5:命名規(guī)范必須與所使用的系統(tǒng)風(fēng)格保持一致,并在同一項(xiàng)目中統(tǒng)一,比如采用 UNIX的全小寫加下劃線的風(fēng)格或大小寫混排的方式,不要使用大小寫與下劃線混排的方式,用作特殊標(biāo)識(shí)如標(biāo)識(shí)成員變量或全局變量的 m_和 g_,其后加上大小寫混排的方式是允許的 示例: Add_User不允許, add_user、 AddUser、 m_AddUser允許。4 1:注意運(yùn)算符的優(yōu)先級(jí),并用括號(hào)明確表達(dá)式的操作順序,避免使用默認(rèn)優(yōu)先級(jí) 說(shuō)明:防止閱讀程序時(shí)產(chǎn)生誤解,防止因默認(rèn)的優(yōu)先級(jí)與設(shè)計(jì)思想不符而導(dǎo)致程序出錯(cuò)。 d = a | ( b c) amp。 = 5。 185。 189。 1 MALE */ unsigned char teacher_name[8]。 1 MALE */ unsigned int teacher_ind。 由于兩個(gè)結(jié)構(gòu)都是描述同一事物的,那么不如合成一個(gè)結(jié)構(gòu)。 typedef struct PERSON_ADDRESS_STRU { unsigned char addr[40]。 unsigned int set_flg: 1。 exam = chr。515:當(dāng)聲明用于分布式環(huán)境或不同 CPU間通信環(huán)境的數(shù)據(jù)結(jié)構(gòu)時(shí),必須考慮機(jī)器的字節(jié)順序、使用的位域及字節(jié)對(duì)齊等問(wèn)題 說(shuō)明: 比如 Intel CPU與 68360 CPU,在處理位域及整數(shù)時(shí),其在內(nèi)存存放的 “順序 ”正好相反。6 4:編寫可重入函數(shù)時(shí),若使用全局變量,則應(yīng)通過(guò)關(guān)中斷、信號(hào)量(即 P、 V操作)等手段對(duì)其加以保護(hù) 說(shuō)明:若對(duì)所使用的全局變量不加以保護(hù),則此函數(shù)就不具有可重入性,即當(dāng)多個(gè)進(jìn)程調(diào)用此函數(shù)時(shí) ,很有可能使有關(guān)全局變量變?yōu)椴豢芍獱顟B(tài)。6 5:在同一項(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)生了冗余代碼,降低了效率。 count num。65:不要設(shè)計(jì)多用途面面俱到的函數(shù) 說(shuō)明:多功能集于一身的函數(shù),很可能使函數(shù)的理解、測(cè)試、維護(hù)等變得困難。由于目前大部分高級(jí)語(yǔ)言都是結(jié)構(gòu)化的,所以通過(guò)具體語(yǔ)言的語(yǔ)法要求與編譯器功能,基本就可以防止這種情況發(fā)生。 } int sub( int a, int b ) { return (a b)。617:讓函數(shù)在調(diào)用點(diǎn)顯得易懂、容易理解 189。 /* 初始化 “點(diǎn) ”的坐標(biāo) */ } 矩形的長(zhǎng)、寬與點(diǎn)的坐標(biāo)基本沒(méi)有任何關(guān)系,故以上函數(shù)是隨機(jī)內(nèi)聚。當(dāng)然分解 或合并函數(shù)時(shí),不能改變要實(shí)現(xiàn)的功能,也不能違背函數(shù)間的獨(dú)立性。 ( 6)不同層次的函數(shù)調(diào)用要有較合理的扇入、扇出。7 1:在同一項(xiàng)目組或產(chǎn)品組內(nèi),要有一套統(tǒng)一的為集成測(cè)試與系統(tǒng)聯(lián)調(diào)準(zhǔn)備的調(diào)測(cè)開(kāi)關(guān)及相應(yīng)打印函數(shù),并且要有詳細(xì)的說(shuō)明 說(shuō)明:本規(guī)則是針對(duì)項(xiàng)目組或產(chǎn)品組的。 } define EXAM_ASSERT( condition ) if (condition) // 若條件成立,則無(wú)動(dòng)作 NULL。 // 用斷言檢查 “假設(shè)指針不為空 ”這個(gè)條件 ... //other program code } 185。7 5:使用斷言來(lái)發(fā)現(xiàn)軟件問(wèn)題,提高代碼可測(cè)性 說(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)警。628:避免使用 BOOL參數(shù) 說(shuō)明:原因有二,其一是 BOOL參數(shù)值無(wú)意義, TURE/FALSE的含義是非常模糊的,在調(diào)用時(shí)很難知道該參數(shù)到底傳達(dá)的是什么意思;其二是 BOOL參數(shù)值不利于擴(kuò)充。 189。 189。若這些代碼關(guān)聯(lián)較大并且是完成一個(gè)功能的,那么這種構(gòu)造是合理的,否則這種構(gòu)造將產(chǎn)生隨機(jī)內(nèi)聚的函數(shù)。 int input_record( void ) 。非調(diào)度函數(shù)的控制參數(shù)增加了函數(shù)間的控制耦合,很可能使函數(shù)間的耦合度增大,并使函數(shù)的功能不唯一。 for (index = 1。 改為如下就很清晰了。 // sum 成了工作變量,不太好。 [申請(qǐng)信號(hào)量操作 ] // 若申請(qǐng)不到 “信號(hào)量 ”,說(shuō)明另外的進(jìn)程正處于 Exam = para。 示例:如下圖,當(dāng)一個(gè) long型數(shù)(如圖中 long1)在內(nèi)存中的位置正好與內(nèi)存的字邊界對(duì)齊時(shí), CPU存取 這個(gè)數(shù)只需訪問(wèn)一次內(nèi)存,而當(dāng)一個(gè) long型數(shù)(如圖中的 long2)在內(nèi)存中的位置跨越了字邊界時(shí),CPU存取這個(gè)數(shù)就需要多次訪問(wèn)內(nèi)存,如 i960cx訪問(wèn)這樣的數(shù)需讀內(nèi)存三次(一個(gè) BYTE、一個(gè) SHORT、一個(gè) BYTE,由 CPU的微代碼執(zhí)行,對(duì)軟件透明),所有對(duì)齊方式下 CPU的運(yùn)行效率明顯快多了。 typedef unsigned short WORD。510:編程時(shí),要注意數(shù)據(jù)類型的強(qiáng)制轉(zhuǎn)換 說(shuō)明:當(dāng)進(jìn)行數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換時(shí),其數(shù)據(jù)的意義、轉(zhuǎn)換后的取值等都有可能發(fā)生變化,而這些細(xì)節(jié)
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1