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

正文內(nèi)容

最新軟件設計規(guī)范免費下載-資料下載頁

2025-04-17 22:46本頁面
  

【正文】 明:面面俱到、靈活的數(shù)據(jù)結(jié)構(gòu)反而容易引起誤解和操作困難。、不同結(jié)構(gòu)間的關系不要過于復雜說明:若兩個結(jié)構(gòu)間關系較復雜、密切,那么應合為一個結(jié)構(gòu)。示例:如下兩個結(jié)構(gòu)的構(gòu)造不合理。typedef struct PERSON_ONE_STRU{ unsigned char aucName[8]。 unsigned char aucAddr[40]。 unsigned char ucSex。 unsigned char ucCity[15]。} PERSON_ONE。typedef struct PERSON_TWO_STRU{ unsigned char aucName[8]。 unsigned char ucAge。 unsigned char ucTel。} PERSON_TWO。由于兩個結(jié)構(gòu)都是描述同一事物的,那么不如合成一個結(jié)構(gòu)。typedef struct PERSON_STRU{ unsigned char aucName[8]。 unsigned char ucAge。 unsigned char ucSex。 unsigned char aucAddr[40]。 unsigned char aucCity[15]。 unsigned char ucTel。} PERSON。、結(jié)構(gòu)中元素的個數(shù)應適中若結(jié)構(gòu)中元素個數(shù)過多可考慮依據(jù)某種原則把元素組成不同的子結(jié)構(gòu),以減少原結(jié)構(gòu)中元素的個數(shù)。說明:增加結(jié)構(gòu)的可理解性、可操作性和可維護性。示例:假如認為如上的_PERSON結(jié)構(gòu)元素過多,那么可如下對之劃分。typedef struct PERSON_BASE_INFO_STRU{ unsigned char ucName[8]。 unsigned char ucAge。 unsigned char ucSex。} PERSON_BASE_INFO。typedef struct PERSON_ADDRESS_STRU{ unsigned char ucAddr[40]。 unsigned char ucCity[15]。 unsigned char ucTel。} PERSON_ADDRESS。typedef struct PERSON_STRU{ PERSON_BASE_INFO stPersonBase。 PERSON_ADDRESS stPersonAddr。} PERSON。、結(jié)構(gòu)體中元素的布局 仔細設計結(jié)構(gòu)中元素的布局與排列順序,使結(jié)構(gòu)容易理解、節(jié)省占用空間,并減少引起誤用現(xiàn)象。說明:合理排列結(jié)構(gòu)中元素順序,可節(jié)省空間并增加可理解性。示例:如下結(jié)構(gòu)中的位域排列,將占較大空間,可讀性也稍差。typedef struct EXAMPLE_STRU{ unsigned int uiValid: 1。 PERSON stPerson。 unsigned int uiSetFlg: 1。} EXAMPLE。若改成如下形式,不僅可節(jié)省1字節(jié)空間,可讀性也變好了。typedef struct EXAMPLE_STRU{ unsigned int uiValid: 1。 unsigned int uiSetFlg: 1。 PERSON stPerson 。} EXAMPLE。、結(jié)構(gòu)體設計要考慮兼容性結(jié)構(gòu)的設計要盡量考慮向前兼容和以后的版本升級,并為某些未來可能的應用保留余地(如預留一些空間等)。說明:軟件向前兼容的特性,是軟件產(chǎn)品是否成功的重要標志之一。如果要想使產(chǎn)品具有較好的前向兼容,那么在產(chǎn)品設計之初就應為以后版本升級保留一定余地,并且在產(chǎn)品升級時必須考慮前一版本的各種特性。、跨平臺數(shù)據(jù)結(jié)構(gòu),要考慮字節(jié)順序及對齊問題當聲明用于分布式環(huán)境或不同CPU間通信環(huán)境的數(shù)據(jù)結(jié)構(gòu)時,必須考慮機器的字節(jié)順序、使用的位域及字節(jié)對齊等問題 。說明:比如Intel CPU與68360 CPU,在處理位域及整數(shù)時,其在內(nèi)存存放的“順序”正好相反。示例:假如有如下短整數(shù)及結(jié)構(gòu)。unsigned short int exam。typedef struct EXAM_BIT_STRU{ /* Intel 68360 */ unsigned int A1: 1。 /* bit 0 7 */ unsigned int A2: 1。 /* bit 1 6 */ unsigned int A3: 1。 /* bit 2 5 */} EXAM_BIT。如下是Intel CPU生成短整數(shù)及位域的方式。內(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ù)及位域的方式。內(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說明:在對齊方式下,CPU的運行效率要快得多。示例:如下圖,當一個long型數(shù)(如圖中l(wèi)ong1)在內(nèi)存中的位置正好與內(nèi)存的字邊界對齊時,CPU存取這個數(shù)只需訪問一次內(nèi)存,而當一個long型數(shù)(如圖中的long2)在內(nèi)存中的位置跨越了字邊界時,CPU存取這個數(shù)就需要多次訪問內(nèi)存,如i960cx訪問這樣的數(shù)需讀內(nèi)存三次(一個BYTE、一個SHORT、一個BYTE,由CPU的微代碼執(zhí)行,對軟件透明),所有對齊方式下CPU的運行效率明顯快多了。 1 8 16 24 32 | long1 | long1 | long1 | long1 | | | | | long2 | | long2 | long2 | long2 | | | ...、struct或union類型中至少應有一個成員、struct或union類型的成員類型struct或union類型的成員不應是void類型、函數(shù)類型、未知大小的數(shù)組和含有未知內(nèi)容的struct或union枚舉、枚舉元素的初始化應完整枚舉元素的初始化只有兩種形式是安全的,一是初始化所有元素,二是只初始化第一個元素。例如:錯誤用法: enum E_type{num1, num2 = 2, num3}。自定義數(shù)據(jù)類型、合理地設計數(shù)據(jù)并使用自定義數(shù)據(jù)類型 合理地設計數(shù)據(jù)并使用自定義數(shù)據(jù)類型,避免數(shù)據(jù)間進行不必要的類型轉(zhuǎn)換。、自定義數(shù)據(jù)類型命名要恰當對自定義數(shù)據(jù)類型進行恰當命名,使它成為自描述性的,以提高代碼可讀性。注意其命名方式在同一產(chǎn)品中的統(tǒng)一。說明:使用自定義類型,可以彌補編程語言提供類型少、信息量不足的缺點,并能使程序清晰、簡潔。示例:可參考如下方式聲明自定義數(shù)據(jù)類型。下面的聲明可使數(shù)據(jù)類型的使用簡潔、明了。typedef unsigned char BYTE。typedef unsigned short WORD。typedef unsigned int DWORD。下面的聲明可使數(shù)據(jù)類型具有更豐富的含義。typedef float DISTANCE。typedef float SCORE。類型轉(zhuǎn)換、謹慎使用數(shù)據(jù)類型的強制轉(zhuǎn)換 編程時,要注意數(shù)據(jù)類型的強制轉(zhuǎn)換。盡量減少沒有必要的數(shù)據(jù)類型默認轉(zhuǎn)換與強制轉(zhuǎn)換。說明:當進行數(shù)據(jù)類型強制轉(zhuǎn)換時,其數(shù)據(jù)的意義、轉(zhuǎn)換后的取值等都有可能發(fā)生變化,而這些細節(jié)若考慮不周,就很有可能留下隱患。、了解編譯系統(tǒng)默認的數(shù)據(jù)類型轉(zhuǎn)換 對編譯系統(tǒng)默認的數(shù)據(jù)類型轉(zhuǎn)換,也要有充分的認識示例:如下賦值,多數(shù)編譯器不產(chǎn)生告警,但值的含義還是稍有變化。char chr。unsigned short int exam。chr = 1。exam = chr。 // 編譯器不產(chǎn)生告警,此時exam為0xFFFF。、應禁止 signed 類型與 unsigned 類型之間的隱式轉(zhuǎn)化從有符號類型轉(zhuǎn)換為無符號類型會導致符號的丟失。無符號數(shù)轉(zhuǎn)換為有符號數(shù),可能得到一個負值。、應禁止 int 類型與 float 類型的隱式轉(zhuǎn)化浮點類型與整型之間的相互轉(zhuǎn)換為會導致精度的丟失。指針、不應對指針變量使用強制類型轉(zhuǎn)換賦值、不應把自動類型的局部變量的地址賦值給外部指針局部變量的地址賦值給外部或者范圍更大的指針,如果局部變量不是靜態(tài)的,那么這種用法是不安全的。錯誤用法示例: extern int* pi。 void f(void) { int a。 pi = amp。a。}、指針的指針不應超過兩級、指向不同數(shù)據(jù)類型的指針之間不應相互轉(zhuǎn)換不同的數(shù)據(jù)類型分配的字節(jié)空間可能不同,將指向多字節(jié)空間的指針轉(zhuǎn)換為指向少字節(jié)空間的指針不會有問題,反之有可能出現(xiàn)錯誤。、指針轉(zhuǎn)換過程中不應丟失指針的const、 volatile屬性、只有指向數(shù)組的指針才允許進行算術運算 此處的算術運算僅僅限定于指針加減某個整數(shù),比如pucPoint = pucPoint 5, pucPoint++等。錯誤用法示例:uint *puiPoint。 uint uiPointTmp。 puiPoint = amp。uiPointTmp。 puiPoint = puiPoint + 2。 ++puiPoint。 正確用法示例 uint *puiPoint。 uint auiPointTmp[10]。 puiPoint = auiPointTmp。 puiPoint = puiPoint + 2。 ++puiPoint。、只有指向同一數(shù)組的兩個指針才允許相減此處兩個指針可以指向同一數(shù)組的不同成員錯誤用法示例: uint auiArray[10]。 uint uiTmp, *puiFirst, *puiSecond。 puiFirst = auiArray+3 puiSecond = auiArray+2 uiTmp = puiFirst – puiSecond。、只有指向同一數(shù)組的兩個指針才允許用、=、和=等關系運算符進行比較 此處兩個指針可以指向同一數(shù)組的不同成員。錯誤用法示例: uchar aucFirst[10]。 uchar aucSecond[10]。 uint uiTemp。 uiTemp = aucFirst aucSecond。正確用法示例: uchar aucArray[10]。 uchar *pucFirst, *pucSecond。 uint uiTemp。 pucFirst = aucArray。 pucSecond = aucArray + 2。 uiTemp = pucFirst pucSecond。、指針的索引值不應為負、不應對指針值可能為NULL的指針進行算術運算 、調(diào)用返回類型為指針的函數(shù)后,應進行是否為空的判斷、局部變量的地址不應在本對象消亡后傳給另外一個對象本條要求分為以下幾種情況:a、 將動態(tài)分配的局部變量的地址賦值給一個帶鏈接的或更寬范圍的指針是危險的,一旦局部變量的內(nèi)存空間被釋放,這個指針會成為無效的指針(見示例1);b、 函數(shù)參數(shù)不應返回動態(tài)數(shù)據(jù)的地址(見示例2);c、 函數(shù)參數(shù)不應返回本地靜態(tài)數(shù)據(jù)的地址(見示例3)。錯誤用法示例:示例1:extern uint* puiTest。void TMP_Test(void){ uint uiTemp。 puiTest = amp。uiTemp。}示例2:void TMP_Test(uint *puiApp){ uint uiTemp = 1。 ... *puiApp = amp。uiTemp。 return。}示例3:void TMP_Test(uint *puiApp){ static uint uiTemp = 1。 ... *puiApp = amp。uiTemp。 return。}、一個未知大小的對象的指針不應成為加法或者減法操作的左操作數(shù)六、函數(shù)函數(shù)編寫原則、明確函數(shù)功能,精確(而不是近似)地實現(xiàn)函數(shù)設計
點擊復制文檔內(nèi)容
公司管理相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1