MISRA C (3)

來源:互聯網
上載者:User

標籤:c語言   misra 編程規範   

控制流程1、不能有不能到達的(unreachable)的代碼2、所有非空語句(non-null statement)應該:a)不管怎樣執行都至少有一個副作用b)可以引起控制流程的轉移3、在預先處理之前,空語句只能出現在一行上,其後可以跟有注釋,假設緊跟空語句的第一個字元是空格4、不應使用goto語句5、不應使用continue語句6、對任何迭代語句至多隻應有一條break語句用於迴圈的結束7、一個函數在其結尾應該有單一的退出點8、組成switch、while、do...while或for結構體的語句應該跟隨有複合陳述式或者另外的if語句9、if(運算式)結構應該跟隨複合陳述式。else關鍵字應該跟隨有複合陳述式或者另外的if語句10、所有的if...else if結構應該由else子句結束
Switch語句1、switch標籤只能用在當前最緊密封閉(closely-enclosing)的複合陳述式是switch語句體的時候2、無條件的break語句應該終止每個非空的switch子句3、switch語句的最後子句應該是default子句4、switch運算式不應是有效布爾值5、每個switch語句至少有一個case子句
函數1、函數的定義不得帶有可變數量的參數2、函數不能調用自身,不管是直接還是間接的。3、在函數的原型聲明中應該為所有參數給出標識符4、函數的聲明和定義中使用的標識符應該一制5、不帶參數的函數應當聲明為具有void類型的參數6、傳遞給一個函數的參數應該與聲明的參數匹配7、函數的原型中的指標參數如果不是用於修改所指向的對象,就應該聲明為指向const的指標8、帶有non-void傳回型別的函數其所有退出路徑都應具有顯式的帶運算式的returned語句9、函數的標識符的使用只能或者加首碼&,或者使用括弧的參數列表,列表可以為空白。10、如果函數返回了錯誤的資訊,那麼錯誤的資訊應該進行測試

MISRA C (3)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.