NASA’s Power of Ten Rules for Safety Critical Code
- 不要使用複雜的流程控制,像是goto或是遞歸
- 所有迴圈都要有固定的上下界,以避免迴圈失控
- 不要使用heap記憶體管理
- 限制函式的長度,列印後不得超過一頁
- 每個函式至少要有二個執行時檢查的斷言(assertion)
- 限制資料在程式中的可存取範圍,越小越好
- 有傳回值的函式,要檢查函式的傳回值,不然就要轉型成 void,表示其傳回值沒有意義
- 謹慎的使用預處理器
- 指標只能使用一個解引用運算符"*" ,而且不要使用函數指針
- 在編譯時開啟所有的警告(warnings),需要處理完所有的警告,才能發行軟體