全部学习汇总: GitHub - GreyZhang/misra_c_hacking: MISRA C, I'm coming! Happy hacking!
这一次来看一下MISRA C 2004中关于运行时错误的规则要求,其实这部分跟多的是在讲项目开发的实施方法上的要求而不是编码规则本身。规则要求也比较简单,只有一条。
运行时中的错误至少得用下面的一种方式来检查:
1, 静态分析;
2, 动态分析;
3, 编码进行检查;
关于动态检查,可以考虑一下的几个方面:
1, 算数错误。其中,溢出以及除零等操作都是这里面的一个可能性。
2, 指针算数错误。这个需要结合前面看过的指针相关的规则来考虑,一个典型的问题点是:指针的增减操作在地址表现上可能并不是一个基础无符号整形的计算规则,而是跟指向对象的大小有关。
3, 防止数组越界。
4, 确保函数参数的正确性。
5, 确保指针的有效性。
到此为止,MISRA C 2004的文档中的规则内容就基本看完了。现在回顾一下,看这个规则的过程跨过了很长的时间。现在终于可以松一口气,给自己一点放松一下的心理暗示了。接下来技能学习的路程还很漫长,希望以后的学习之路中每一段旅程都能够更加轻松愉快一些!