¶The power of 10: Rules for developing safety-critical code
由NASA创造的10条用于消除C语言代码中难以检查的问题的规则。
- 避免复杂的控制流,如goto和递归
- 循环需要有固定且有限的长度
- 避免堆内存分配
- 将函数限制到一页
- 每个函数最多使用两个运行时断言
- 将数据作用域限制到最小
- 检查非void函数的返回值,或者转化为void
- 谨慎使用预处理器
- 限制指针仅使用单次解引用,不使用函数指针
- 编译开启所有警告,不能忽略任何警告
less is more!
¶遵循编码规则,使用静态分析
- MISRA C/C++(C/C++语言的一个安全子集)
- AUTOSAR coding guidelines
- parasoft test
¶降低圈复杂度
¶使用可形式化验证的语言
- Ada,SPARK
- simulink、matlab