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

正文內(nèi)容

【經(jīng)管勵(lì)志】編程規(guī)范和范例-閱讀頁

2025-05-14 12:08本頁面
  

【正文】 r index */ } STUDENT。54:不要設(shè)計(jì)面面俱到、非常靈活的數(shù)據(jù)結(jié)構(gòu)。 189。 說明:若兩個(gè)結(jié)構(gòu)間關(guān)系較復(fù)雜、密切,那么應(yīng)合為一個(gè)結(jié)構(gòu)。 typedef struct PERSON_ONE_STRU { unsigned char name[8]。 unsigned char sex。 } PERSON_ONE。 unsigned char age。 } PERSON_TWO。 typedef struct PERSON_STRU { unsigned char name[8]。 unsigned char sex。 unsigned char city[15]。 } PERSON。56:結(jié)構(gòu)中元素的個(gè)數(shù)應(yīng)適中。 說明:增加結(jié)構(gòu)的可理解性、可操作性和可維護(hù)性。 typedef struct PERSON_BASE_INFO_STRU { unsigned char name[8]。 unsigned char sex。 typedef struct PERSON_ADDRESS_STRU { unsigned char addr[40]。 unsigned char tel。 typedef struct PERSON_STRU { PERSON_BASE_INFO person_base。 } PERSON。57:仔細(xì)設(shè)計(jì)結(jié)構(gòu)中元素的布局與排列順序,使結(jié)構(gòu)容易理解、節(jié)省占用空間,并減少引起誤用現(xiàn)象。 示例:如下結(jié)構(gòu)中的位域排列,將占較大空間,可讀性也稍差。 PERSON person。 } EXAMPLE。 typedef struct EXAMPLE_STRU { unsigned int valid: 1。 PERSON person 。 189。 說明:軟件向前兼容的特性,是軟件產(chǎn)品是否成功的重要標(biāo)志之一。 189。 說明:如在 C語言中, static局部變量將在內(nèi)存“數(shù)據(jù)區(qū)”中生成,而非 static局部變量將在“堆?!敝猩?。 189。 說明:當(dāng)進(jìn)行數(shù)據(jù)類型強(qiáng)制轉(zhuǎn)換時(shí),其數(shù)據(jù)的意義、轉(zhuǎn)換后的取值等都有可能發(fā)生變化,而這些細(xì)節(jié)若考慮不周,就很有可能留下隱患。511:對(duì)編譯系統(tǒng)默認(rèn)的數(shù)據(jù)類型轉(zhuǎn)換,也要有充分的認(rèn)識(shí)。 軟件編程規(guī)范總則 5 變量、結(jié)構(gòu) 僅供內(nèi)部使 用 27 char chr。 chr = 1。 // 編譯器不產(chǎn)生告警,此時(shí) exam為 0xFFFF。512:盡量減少?zèng)]有必要的數(shù)據(jù)類型默認(rèn)轉(zhuǎn)換與強(qiáng)制轉(zhuǎn)換。513:合理地設(shè)計(jì)數(shù)據(jù)并使用自定義數(shù)據(jù)類型,避免數(shù)據(jù)間進(jìn)行不必要的類型轉(zhuǎn)換。514:對(duì)自定義數(shù)據(jù)類型進(jìn)行恰當(dāng)命名,使它成為自描述性的,以提高代碼可讀性。 說明:使用自定義類型,可以彌補(bǔ)編程語言提供類型少、信息量不足的缺點(diǎn),并能使程序清晰、簡(jiǎn)潔。 下面的聲明可使數(shù)據(jù)類型的使用簡(jiǎn)潔、明了。 typedef unsigned short WORD。 下面的聲明可使數(shù)據(jù)類型具有更豐富的含義。 typedef float SCORE。515:當(dāng)聲明用于分布式環(huán)境或不同 CPU間通信環(huán)境的數(shù)據(jù)結(jié)構(gòu)時(shí),必須考慮機(jī)器的字節(jié)順序、使用的位域及字節(jié)對(duì)齊等問題 。 示例:假如有如下短整數(shù)及結(jié)構(gòu)。 typedef struct EXAM_BIT_STRU { /* Intel 68360 */ unsigned int A1: 1。 /* bit 1 6 */ 軟件編程規(guī)范總則 5 變量、結(jié)構(gòu) 僅供內(nèi)部使 用 28 unsigned int A3: 1。 如下是 Intel CPU生成短整數(shù)及位域的方式。 內(nèi)存: 0 1 2 ... (從低到高,以字節(jié)為單位) exam exam高字節(jié) exam低字節(jié) 內(nèi)存: 7 bit 6 bit 5 bit ... (字節(jié)的各“位”) EXAM_BIT A1 A2 A3 說明:在對(duì)齊方式下, CPU的運(yùn)行效率要快得多。 1 8 16 24 32 | long1 | long1 | long1 | long1 | | | | | long2 | | long2 | long2 | long2 | | | .... 軟件編程規(guī)范總則 6 函數(shù)、過程 僅供內(nèi)部使用 29 6 函數(shù)、過程 185。 185。 185。 說明:編寫 C/C++語言的可重入函數(shù)時(shí),不應(yīng)使用 static局部變量,否則必須經(jīng)過特殊處理,才能使函數(shù)具有可重入性。64:編寫可重入函數(shù)時(shí),若使用全局變量,則應(yīng)通過關(guān)中斷、信號(hào)量(即 P、 V操作)等手段對(duì)其加以保護(hù)。 示例:假設(shè) Exam是 int型全局變量,函數(shù) Squre_Exam返回 Exam平方值。 unsigned int example( int para ) { unsigned int temp。 // ( **) temp = Square_Exam( )。 } 此函數(shù)若被多個(gè)進(jìn)程調(diào)用的話,其結(jié)果可能是未知的,因?yàn)楫?dāng)( **)語句剛執(zhí)行完后,另外一個(gè)使用本函數(shù)的進(jìn)程可能正好被激活,那么當(dāng)新激活的進(jìn)程執(zhí)行到此函數(shù)時(shí),將使Exam賦與另一個(gè)不同的 para值,所以當(dāng)控制重新回到“ temp = Square_Exam( )”后,計(jì)算出的 temp很可能不是預(yù)想中的結(jié)果。 unsigned int example( int para ) { unsigned int temp。 // 給 Exam賦值并計(jì)算其平方過程中(即正在使用此 temp = Square_Exam( )。若申請(qǐng)到信號(hào),則可繼續(xù)執(zhí)行,但其 // 它進(jìn)程必須等待本進(jìn)程釋放信號(hào)量后,才能再使 // 用本信號(hào)。 } 185。 說明:對(duì)于模塊間接口函 數(shù)的參數(shù)的合法性檢查這一問題,往往有兩個(gè)極端現(xiàn)象,即:要么是調(diào)用者和被調(diào)用者對(duì)參數(shù)均不作合法性檢查,結(jié)果就遺漏了合法性檢查這一必要的處理過程,造成問題隱患;要么就是調(diào)用者和被調(diào)用者均對(duì)參數(shù)進(jìn)行合法性檢查,這種情況雖不會(huì)造成問題,但產(chǎn)生了冗余代碼,降低了效率。61:防止將函數(shù)的參數(shù)作為工作變量。對(duì)必須改變的參數(shù),最好先用局部變量代之,最后再將該局部變量的內(nèi)容賦給該參數(shù)。 void sum_data( unsigned int num, int *data, int *sum ) { unsigned int count。 for (count = 0。 count++) { *sum += data[count]。 } } 若改為如下,則更好些。 int sum_temp。 for (count = 0。 count ++) { sum_temp += data[count]。 } 189。 說明:不包括注釋和空格行 。63:一個(gè)函數(shù)僅完成一件功能。64:為簡(jiǎn)單功能編寫函數(shù)。 示例:如下語句的功能不很明顯。 改為如下就很清晰了。 } value = max (a, b)。 define MAX (a, b) (((a) (b)) ? (a) : (b)) value = MAX (a, b)。65:不要設(shè)計(jì)多用途面面俱到的函數(shù)。 189。 說明:帶有內(nèi)部“存儲(chǔ)器”的函數(shù)的功能可能是不可預(yù)測(cè)的,因?yàn)樗妮敵隹赡苋Q于內(nèi)部存儲(chǔ)器(如某標(biāo)記)的狀態(tài)。在 C/C++語言中,函數(shù)的 static局部變量是函數(shù)的內(nèi)部存儲(chǔ)器,有可能使函數(shù)的功能不可預(yù)測(cè),然而,當(dāng)某函數(shù)的返回值為指針類型時(shí),則必須是 STATIC的局部 變量的地址作為返回值,若為 AUTO類,則返回為錯(cuò)針。 unsigned int integer_sum( unsigned int base ) { unsigned int index。 // 注意,是 static類型的。 for (index = 1。 index++) { sum += index。 } 189。 說明:此條為函數(shù)獨(dú)立性的基本要求。但在匯編語言中,由于其靈活性,很可能使函數(shù)出現(xiàn)這種情況。過程 Print_Msg的實(shí)現(xiàn)依賴于Input_Msg的具體實(shí)現(xiàn),這種程序 是非結(jié)構(gòu)化的,難以維護(hù)、修改。68:避免設(shè)計(jì)多參數(shù)函數(shù),不使用的參數(shù)從接口中去掉。 189。 說明:本建議目的是防止函數(shù)間的控制耦合??刂茀?shù)是指改變函數(shù)功能行為的參數(shù),即函數(shù)要根據(jù)此參數(shù)來決定具體怎樣工作。 示例:如下函數(shù)構(gòu)造不太合理。 } else { return (a b)。 int add( int a, int b ) { return (a + b)。 } 189。 189。 說明:函數(shù)的輸入主要有兩種:一種是參數(shù)輸入;另一種是全局變量、數(shù)據(jù)文件的輸入,即非參數(shù)輸入。 189。 189。如果是 OOP方法,可以只有動(dòng)詞(名詞是對(duì)象本身)。 void print_record( unsigned int rec_ind ) 。 unsigned char get_current_color( void ) 。 說明:避免用含義不清的動(dòng)詞如 process、 handle等為函數(shù)命名,因?yàn)檫@些動(dòng)詞并沒有說明要具體做什么。 說明:函數(shù)的每種出錯(cuò)返回值的意義要清晰、明了、準(zhǔn)確,防止使用者誤用、理解錯(cuò)誤或忽視錯(cuò)誤返回碼。616:除非必要,最好不要把與函數(shù)返回值類型不同的變量,以編譯系統(tǒng)默認(rèn)的轉(zhuǎn)換方式或強(qiáng)制的轉(zhuǎn)換方式作為返回值返回。617:讓函數(shù)在調(diào)用點(diǎn)顯得易懂、容易理解。618:在調(diào)用函數(shù)填寫參數(shù)時(shí),應(yīng)盡量減少?zèng)]有必要的默認(rèn)數(shù)據(jù)類型轉(zhuǎn)換或強(qiáng)制數(shù)據(jù)類型轉(zhuǎn)換。 軟件編程規(guī)范總則 6 函數(shù)、過程 僅供內(nèi)部使用 35 189。 說明:程序中的垃圾代碼不僅占用額外的空間,而且還常常影響程序的功能與性能,很可能給程序的測(cè)試、維護(hù)等造成不必要的麻煩。620:防止把沒有關(guān)聯(lián)的語句放到一個(gè)函數(shù)中。隨機(jī)內(nèi)聚是指將沒有關(guān)聯(lián)或關(guān)聯(lián)很弱的語句放到同一個(gè)函數(shù)或過程中。使用隨機(jī)內(nèi)聚函數(shù),常常容易出現(xiàn)在一種應(yīng)用場(chǎng)合需要改進(jìn)此函數(shù),而另一種應(yīng)用場(chǎng)合又不允許這種改進(jìn),從而陷入困境。若這些代碼關(guān)聯(lián)較大并且是完成一個(gè)功能的,那么這種構(gòu)造是合理的,否則這種構(gòu)造將產(chǎn)生隨機(jī)內(nèi)聚的函數(shù)。 void Init_Var( void ) { = 0。 /* 初始化矩形的長與寬 */ = 10。 /* 初始化“點(diǎn)”的坐標(biāo) */ } 矩形的長、寬與點(diǎn)的坐標(biāo)基本沒有任何關(guān)系,故以上函數(shù)是隨機(jī)內(nèi)聚。 = 0。 = 10。621:如果多段代碼重復(fù)做同一件事情,那么在函數(shù)的劃分上可能存在問題。 189。 說明:模塊中函數(shù)劃分的過多,一般會(huì)使函數(shù)間的接口變得復(fù)雜。 189。 說明:扇出是指一個(gè)函數(shù)直接調(diào)用(控制)其它函數(shù)的數(shù)目,而扇入是指有多少上級(jí)函數(shù)調(diào)用它。函數(shù)較合理的扇出(調(diào)度函數(shù)除外)通常是 35。扇出太小,可把下級(jí)函數(shù)進(jìn)一步分解多個(gè)函數(shù),或合并到上級(jí)函數(shù)中。 扇入越大,表明使用此函數(shù)的上級(jí)函數(shù)越多,這樣的函數(shù)使用效率高,但不能違背函數(shù)間的獨(dú)立性而單純地追求高扇入。 較良好的軟件結(jié)構(gòu)通常是頂層函數(shù)的扇出較高,中層函數(shù)的扇出較少,而底層函數(shù)則扇入到公共模塊中。624:減少函數(shù)本身或函數(shù)間的遞歸調(diào)用。故除非為某些算法或功能的實(shí)現(xiàn)方便,應(yīng)減少?zèng)]必要的遞歸調(diào)
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1