无限循环|嵌入式开发:成功进行代码审查的10个问题( 二 )


问题 8 – 是否存在断言和/或输入/输出检查?
嵌入式软件开发人员应该在他们的代码中添加断言 , 以验证他们对程序在某些点的行为的假设是否正确 , 应对入站和出站数据执行边界检查 。 还记得那句老话“垃圾进 , 垃圾出”吗?

问题 9 – 是否有标题保护在场?
标题保护是一个简单的宏 , 可确保标题文件在翻译单元中不包含多次 。 保护是防止双重包含 #include 指令 。 不包括标题保护可能会导致一些非常奇怪的静态分析行为 , 更重要的是 , 嵌入式开发人员使用保护可以防止多个定义错误 。
问题 10 – 是否使用了浮点数学?
浮点数学的使用在嵌入式系统中可能是一个棘手的主题 。 资源受限的微控制器通常不包括浮点单元 (FPU) 。 这种缺失意味着处理器只有一种执行浮点计算的方法:使用库函数 。 用于浮点数学的库函数通常缓慢且效率低下 , 它们不一定具有确定性行为 , 并且它们可能导致代码规模膨胀 。 由于这些原因 , 开发人员应仔细考虑何时在微控制器中使用浮点 。 他们还应该执行额外的测试 , 并应该考虑替代方法 , 例如查找表、缩放和定点数学 。
结论
许多工程师发现代码审查非常无聊 , 但实际上很有趣 , 因为执行代码审查可能是一个非常激动人心的时刻 。 每个程序员对嵌入式软件开发和 C 语言都有自己独特的观点和见解 , 所以总有一些东西需要学习 。 然而 , 尽管嵌入式开发人员正在实施许多见解和不同级别的检查和平衡 , 但错误仍然存在 。 这十个问题解决了开发嵌入式软件时应在每次代码审查时检查的常见错误和误解 。