<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 程序的書(shū)寫(xiě)規則(程序的編碼規范)

程序的書(shū)寫(xiě)規則(程序的編碼規范)

作者: 時(shí)間:2016-11-13 來(lái)源:網(wǎng)絡(luò ) 收藏
隨著(zhù)軟件產(chǎn)品的功能增加和版本的提高,代碼越來(lái)越復雜,源文件也越來(lái)越多,
對于軟件開(kāi)發(fā)人員來(lái)說(shuō),除了保證程序運行的正確性和提高代碼的 運行效率之外,規
范風(fēng)格的編碼會(huì )對軟件的升級、修改、維護帶來(lái)極大的方便性,也保證程序員不會(huì )陷
入“代碼泥潭”中無(wú)法自拔。開(kāi)發(fā)一個(gè) 成熟的軟件產(chǎn)品,除了有詳細豐富的開(kāi)發(fā)文檔
之外,必須在編寫(xiě)代碼的時(shí)候就有條不紊,細致嚴謹。
  以下的編碼規范包含了程序排版、注 釋、命名、可讀性、變量、程序效率、質(zhì)量
保證、代碼編譯、代碼測試和版本控制等注意事項。
  一、排版:
  1.關(guān)鍵詞和 操作符之間加適當的空格。
  2.相對獨立的程序塊與塊之間加空行
  3.較長(cháng)的語(yǔ)句、表達式等要分成多行書(shū)寫(xiě)。
  4. 劃分出的新行要進(jìn)行適應的縮進(jìn),使排版整齊,語(yǔ)句可讀。
  5.長(cháng)表達式要在低優(yōu)先級操作符處劃分新行,操作符放在新行之首。
   6.循環(huán)、判斷等語(yǔ)句中若有較長(cháng)的表達式或語(yǔ)句,則要進(jìn)行適應的劃分。
  7.若函數或過(guò)程中的參數較長(cháng),則要進(jìn)行適當的劃分。
   8.不允許把多個(gè)短語(yǔ)句寫(xiě)在一行中,即一行只寫(xiě)一條語(yǔ)句。
  9.函數或過(guò)程的開(kāi)始、結構的定義及循環(huán)、判斷等語(yǔ)句中的代碼都要采用縮進(jìn)風(fēng)格。
  10.C/C++語(yǔ)言是用大括號‘{’和‘}’界定一段程序塊的,編寫(xiě)程序塊時(shí)‘{’和
   ‘}’應各獨占一行并且位于同一 列,同時(shí)與引用它們的語(yǔ)句左對齊。在函數體
    的開(kāi)始、類(lèi)的定義、結構的定義、枚舉的定義以及if、for、do、while、
     switch、case語(yǔ)句中的程序都要采用如上的縮進(jìn)方式。

  二、注釋
  1.注釋要簡(jiǎn)單明了。
  2.邊寫(xiě)代碼邊注釋?zhuān)薷拇a同時(shí)修改相應的注釋?zhuān)员WC注釋與代碼的一致性。
   3.在必要的地方注釋?zhuān)⑨屃恳m中。注釋的內容要清楚、明了,含義準確,防止
   注釋二義性。保持注釋與其描述的代碼相鄰,即注釋的就近 原則。
  4.對代碼的注釋?xiě)旁谄渖戏较噜徫恢?,不可放在下面?br />  5.對數據結構的注釋?xiě)旁谄渖戏较噜徫恢?,不可放在下面;?結構中的每個(gè)域
   的注釋?xiě)旁诖擞虻挠曳?;同一結構中不同域的注釋要對齊。
  6.變量、常量的注釋?xiě)旁谄渖戏较噜徫恢没蛴?方。
  7.全局變量要有較詳細的注釋?zhuān)▽ζ涔δ?、取值范圍、哪些函數或過(guò)程存取它
   以及存取時(shí)注意事項等的說(shuō)明。
   8.在每個(gè)源文件的頭部要有必要的注釋信息,包括:文件名;版本號;作者;生成
   日期;模塊功能描述(如功能、主要算法、內部各部分之間 的關(guān)系、該文件與其
   它文件關(guān)系等);主要函數或過(guò)程清單及本文件歷史修改記錄等。
  9.在每個(gè)函數或過(guò)程的前面要有必要的注 釋信息,包括:函數或過(guò)程名稱(chēng);功能描
   述;輸入、輸出及返回值說(shuō)明;調用關(guān)系及被調用關(guān)系說(shuō)明等。

本文引用地址:http://dyxdggzs.com/article/201611/316154.htm

  三、命名
  1.較短的單詞可通過(guò)去掉“元音”形成縮寫(xiě);
  2.較長(cháng)的單詞可取單詞的頭幾發(fā)符的優(yōu)先級,并用括號明確表 達式的操作順序,避
   免使用默認優(yōu)先級。
  3.使用匈牙利表示法

  四、可讀性
  1.避免使用不易理解的數字,用有意義的標識來(lái)替代。
  2.不要使用難懂的技巧性很高的語(yǔ)句。
   3.源程序中關(guān)系較為緊密的代碼應盡可能相鄰。

  五、變量
  1.去掉沒(méi)必要的公共變量。
  2.構造僅有一個(gè)模塊或函數可以修改、創(chuàng )建,而其余有關(guān)模塊或函數只訪(fǎng)問(wèn)的公 共
   變量,防止多個(gè)不同模塊或函數都可以修改、創(chuàng )建同一公共變量的現象。
  3.仔細定義并明確公共變量的含義、作用、取值范圍 及公共變量間的關(guān)系。
  4.明確公共變量與操作此公共變量的函數或過(guò)程的關(guān)系,如訪(fǎng)問(wèn)、修改及創(chuàng )建等。
  5.當向公共變量傳遞數 據時(shí),要十分小心,防止賦與不合理的值或越界等現象發(fā)生。
  6.防止局部變量與公共變量同名。
  7.仔細設計結構中元素的布局與 排列順序,使結構容易理解、節省占用空間,并減
   少引起誤用現象。
  8.結構的設計要盡量考慮向前兼容和以后的版本升級,并為 某些未來(lái)可能的應用保
   留余地(如預留一些空間等)。
  9.留心具體語(yǔ)言及編譯器處理不同數據類(lèi)型的原則及有關(guān)細節。
   10.嚴禁使用未經(jīng)初始化的變量。聲明變量的同時(shí)對變量進(jìn)行初始化。
  11.編程時(shí),要注意數據類(lèi)型的強制轉換。

  六、函數、過(guò)程
  1.函數的規模盡量限制在200行以?xún)取?br />  2.一個(gè)函數最好僅完成一件功能。
  3.為簡(jiǎn) 單功能編寫(xiě)函數。
  4.函數的功能應該是可以預測的,也就是只要輸入數據相同就應產(chǎn)生同樣的輸出。
  5.盡量不要編寫(xiě)依賴(lài)于其他 函數內部實(shí)現的函數。
  6.避免設計多參數函數,不使用的參數從接口中去掉。
  7.用注釋詳細說(shuō)明每個(gè)參數的作用、取值范圍及參 數間的關(guān)系。
  8.檢查函數所有參數輸入的有效性。
  9.檢查函數所有非參數輸入的有效性,如數據文件、公共變量等。
   10.函數名應準確描述函數的功能。
  11.避免使用無(wú)意義或含義不清的動(dòng)詞為函數命名
  12.函數的返回值要清楚、明了,讓 使用者不容易忽視錯誤情況。
  13.明確函數功能,精確(而不是近似)地實(shí)現函數設計。
  14.減少函數本身或函數間的遞歸調 用。
  15.編寫(xiě)可重入函數時(shí),若使用全局變量,則應通過(guò)關(guān)中斷、信號量(即P、V操作)
    等手段對其加以保護。

  七、可測性
  1.在編寫(xiě)代碼之前,應預先設計好程序調試與測試的方法和手段,并設計好各種調
  測開(kāi)關(guān)及相應測試代碼如 打印函數等。
  2.在進(jìn)行集成測試/系統聯(lián)調之前,要構造好測試環(huán)境、測試項目及測試用例,同時(shí)
  仔細分析并優(yōu)化測試用例,以提 高測試效率。

  八、程序效率
  1.編程時(shí)要經(jīng)常注意代碼的效率。
  2.在保證軟件系統的正確性、穩定性、可讀性及可測性的前提下,提 高代碼效率。
  3.不能一味地追求代碼效率,而對軟件的正確性、穩定性、可讀性及可測性造成影
   響。
  4.編程 時(shí),要隨時(shí)留心代碼效率;優(yōu)化代碼時(shí),要考慮周全。
  5.要仔細地構造或直接用匯編編寫(xiě)調用頻繁或性能要求極高的函數。
  6.通 過(guò)對系統數據結構劃分與組織的改進(jìn),以及對程序算法的優(yōu)化來(lái)提高空間效率。
  7.在多重循環(huán)中,應將最忙的循環(huán)放在最內層。
   8.盡量減少循環(huán)嵌套層次。
  9.避免循環(huán)體內含判斷語(yǔ)句,應將循環(huán)語(yǔ)句置于判斷語(yǔ)句的代碼塊之中。
  10.盡量用乘法或其它方 法代替除法,特別是浮點(diǎn)運算中的除法。

  九、質(zhì)量保證
  1.在軟件設計過(guò)程中構筑軟件質(zhì)量。
  代碼質(zhì)量保證優(yōu)先原則
 ?。?)正確性,指程序要實(shí)現 設計要求的功能。
 ?。?)穩定性、安全性,指程序穩定、可靠、安全。
 ?。?)可測試性,指程序要具有良好的可測試性。
  ?。?)規范/可讀性,指程序書(shū)寫(xiě)風(fēng)格、命名規則等要符合規范。
 ?。?)全局效率,指軟件系統的整體效率。
 ?。?)局部效率,指 某個(gè)模塊/子模塊/函數的本身效率。
 ?。?)個(gè)人表達方式/個(gè)人方便性,指個(gè)人編程習慣。
  2.只引用屬于自己的存貯空間。
   3.防止引用已經(jīng)釋放的內存空間。
  4.過(guò)程/函數中分配的內存,在過(guò)程/函數退出之前要釋放。
  5.過(guò)程/函數中申請的(為 打開(kāi)文件而使用的)文件句柄,在過(guò)程/函數退出前要關(guān)
閉。
  6.防止內存操作越界。
  7.時(shí)刻注意表達式是否會(huì )上溢、下 溢。
  8.認真處理程序所能遇到的各種出錯情況。
  9.系統運行之初,要初始化有關(guān)變量及運行環(huán)境,防止未經(jīng)初始化的變量被引 用。
  10.系統運行之初,要對加載到系統中的數據進(jìn)行一致性檢查。
  11.嚴禁隨意更改其它模塊或系統的有關(guān)設置和配置。
   12.不能隨意改變與其它模塊的接口。
  13.充分了解系統的接口之后,再使用系統提供的功能。
  14.要時(shí)刻注意易混淆的操 作符。當編完程序后,應從頭至尾檢查一遍這些操作符。
  15.不使用與硬件或操作系統關(guān)系很大的語(yǔ)句,而使用建議的標準語(yǔ)句。
   16.建議:使用第三方提供的軟件開(kāi)發(fā)工具包或控件時(shí),要注意以下幾點(diǎn):
 ?。?)充分了解應用接口、使用環(huán)境及使用時(shí)注意事項。
  ?。?)不能過(guò)分相信其正確性。
 ?。?)除非必要,不要使用不熟悉的第三方工具包與控件。

  十、代碼編譯
  1.編寫(xiě)代碼時(shí)要注意隨時(shí)保存,并定期備份,防止由于斷電、硬盤(pán)損壞等原因造成
   代碼丟失。
   2.同一項目組內,最好使用相同的編輯器,并使用相同的設置選項。
  3.合理地設計軟件系統目錄,方便開(kāi)發(fā)人員使用。
  4.打 開(kāi)編譯器的所有告警開(kāi)關(guān)對程序進(jìn)行編譯。
  5.在同一項目組或產(chǎn)品組中,要統一編譯開(kāi)關(guān)選項。
  6.使用工具軟件(如 Visual SourceSafe)對代碼版本進(jìn)行維護。

  十一、代碼測試、維護
  1.單元測試要求至少達到語(yǔ)句覆蓋。
  2.單元測試開(kāi)始要跟蹤每一條語(yǔ)句,并觀(guān)察數據流及變量 的變化。
  3.清理、整理或優(yōu)化后的代碼要經(jīng)過(guò)審查及測試。
  4.代碼版本升級要經(jīng)過(guò)嚴格測試。


評論


技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>