版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、MISRA2004規(guī)則規(guī)則Jerry整理出處:汽車工業(yè)軟件可靠性聯(lián)會最后更新時(shí)間:2005720轉(zhuǎn)載請注明:來自Sawin系統(tǒng)分析之窗MISRA(TheMotIndustrySoftwareReliabilityAssociation汽車工業(yè)軟件可靠性聯(lián)會)是位于英國的一個跨國汽車工業(yè)協(xié)會,其成員包括了大部分歐美汽車生產(chǎn)商。其核心使命是為汽車工業(yè)提供服務(wù)和協(xié)助,幫助廠方開發(fā)安全的、高可靠性的嵌入式軟件。這個組織最出名的成果是所謂的MIS
2、RACCodingStard,這一標(biāo)準(zhǔn)中包括了127條C語言編碼標(biāo)準(zhǔn),通常認(rèn)為,如果能夠完全遵守這些標(biāo)準(zhǔn),則你的C代碼是易讀、可靠、可移植和易于維護(hù)的。最近很多嵌入式開發(fā)者都以MISRAC來衡量自己的編碼風(fēng)格,比如著名的uCOSII就得意地宣稱自己99%遵守MISRA標(biāo)準(zhǔn)。而《嵌入式開發(fā)雜志》也專門載文號召大家學(xué)習(xí)。編碼規(guī)范通常是一個公司自定的“土政策”,居然有人去做標(biāo)準(zhǔn),而且還得到廣泛的認(rèn)可,這不禁引起我強(qiáng)烈的興趣。可惜這份標(biāo)準(zhǔn)的文本
3、需要花錢去買,而且短短幾十頁,要價(jià)非常昂貴。MISRA在網(wǎng)上公布了一些文檔,其中有關(guān)于MISRACCodingStard的Clarification報(bào)告,從中間你可以大致猜到MISRA標(biāo)準(zhǔn)本身是什么。我仔細(xì)閱讀了這些文檔,并且通過閱讀其他一些介紹性文檔,大致了解了MISRA標(biāo)準(zhǔn)的主要內(nèi)容。這些條款確有過人之處,對于CC語言工程項(xiàng)目的代碼質(zhì)量管理能夠起到良好的指導(dǎo)性作用,對于大部分軟件開發(fā)企業(yè)來說,在MISRA的基礎(chǔ)上適當(dāng)修改就可以形成自
4、己的規(guī)范。當(dāng)然其中也有一些過于嚴(yán)苛的東西,這就需要各個開發(fā)部門靈活處理了。我個人的體會,編碼規(guī)范雖然很簡單,但是要完全執(zhí)行,不折不扣,需要開發(fā)部門有很高的組織性和紀(jì)律性,并且有很好的代碼評審機(jī)制。因此,如果能夠嚴(yán)格地遵守編碼規(guī)范,本身就是一個開發(fā)部門實(shí)力的證明。內(nèi)容內(nèi)容Rule1.1(強(qiáng)制):所有的代碼應(yīng)該遵守ISO9899:1990“ProgrammingLanguageC”Rule1.2(強(qiáng)制):只有當(dāng)具備統(tǒng)一接口的目標(biāo)代碼的時(shí)候才
5、可以采用多種編譯器和語言Rule1.4(強(qiáng)制)檢查編譯器連接器以確保支持31一個有效字符,支持大小寫敏感Rule2.1(強(qiáng)制):匯編語言應(yīng)該封裝起來并且隔離:例如:#defineNOPasm(“NOP”)Rule2.2(強(qiáng)制):源代碼只能采用…風(fēng)格的注釋Rule2.3(強(qiáng)制):字符序列不能在注釋中使用注:C語言不支持注釋的嵌套即使一些編譯器支持這個語言擴(kuò)展Rule8.1(強(qiáng)制):函數(shù)都應(yīng)該有原型聲明,且相對函數(shù)定義和調(diào)用可見Rule8.
6、2(強(qiáng)制):無論何時(shí)一個對象和函數(shù)聲明或者定義,它的類型應(yīng)該明確聲明Rule8.5(強(qiáng)制):頭文件中不要定義對象或者函數(shù)Rule8.3(強(qiáng)制):每個函數(shù)聲明中的參數(shù)的類型應(yīng)該和定義中的類型一致Rule8.8(強(qiáng)制):外部變量或者函數(shù)只能聲明在一個文件中注:一般來講,聲明在頭文件中,然后包含在定義和使用的文件中Rule8.12(強(qiáng)制):數(shù)組聲明為外部,應(yīng)該明確聲明大小或者直接初始化確定例:externintarray2[]違反Rule8.
7、8Rule9.1(強(qiáng)制):所有變量在使用之前都應(yīng)該賦值Rule10.1(強(qiáng)制):整型表達(dá)式不要隱式轉(zhuǎn)換為其他類型:a)轉(zhuǎn)換到更大的整型b)表達(dá)式太復(fù)雜c)表達(dá)式不是常數(shù)是一個函數(shù)d)表達(dá)式不是一個常數(shù)是一個返回表達(dá)式Rule10.2(強(qiáng)制):浮點(diǎn)數(shù)表達(dá)式不要隱式轉(zhuǎn)換為其他類型:a)轉(zhuǎn)換到更大的浮點(diǎn)數(shù)b)表達(dá)式太復(fù)雜c)表達(dá)式是一個函數(shù)d)表達(dá)式是一個返回表達(dá)式Rule10.3(強(qiáng)制):整型表達(dá)式的值只能轉(zhuǎn)換到更窄小且是同樣符號類型的表達(dá)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 基于MISRA的C程序規(guī)則分析驗(yàn)證平臺的實(shí)現(xiàn).pdf
- 符合MISRA C標(biāo)準(zhǔn)的自動代碼生成及代碼檢查工具.pdf
- 基于MISRA標(biāo)準(zhǔn)的通用C語言自動化檢測工具.pdf
- 國旗下講話:有規(guī)則才有自由有規(guī)則才有進(jìn)步.doc
- 沖孔凸模不規(guī)則.doc
- 沖孔凸模不規(guī)則.doc
- 董事會議事規(guī)則、股東會議事規(guī)則、總經(jīng)理議事規(guī)則(doc范本)
- 比較《海牙規(guī)則》、《維斯比規(guī)則》、《漢堡規(guī)則》和《鹿特丹規(guī)則》表格
- 3、面試考場規(guī)則.doc
- 比較《海牙規(guī)則》、《維斯比規(guī)則》、《漢堡規(guī)則》和《鹿特丹規(guī)則》表格形式
- 英語不規(guī)則動詞變化規(guī)則
- 財(cái)產(chǎn)權(quán)之保障規(guī)則——以財(cái)產(chǎn)規(guī)則、責(zé)任規(guī)則與不可轉(zhuǎn)讓規(guī)則為中心.pdf
- 從社會規(guī)則到網(wǎng)絡(luò)規(guī)則
- 匈牙利規(guī)則(寫程序代碼規(guī)則)
- 港口油區(qū)安全生產(chǎn)管理規(guī)則(doc 10)
- 基于規(guī)則的網(wǎng)絡(luò)故障管理的自動規(guī)則生成-投稿版本-2015-09-22.doc
- 臺球規(guī)則
- 郵政規(guī)則
- 命名規(guī)則
- 文檔規(guī)則
評論
0/150
提交評論