gpt4 book ai didi

c++ - 我们还需要做静态分析吗?

转载 作者:IT老高 更新时间:2023-10-28 22:06:33 24 4
gpt4 key购买 nike

我的老板认为我们编写的任何代码(用 C/C++ 编写)都必须符合静态分析工具(如 MISRA/Lint)指定的标准。我对此的看法是,由于今天的编译器开发得很好,这真的需要吗?

这里的问题是这些天这种静态分析的效果如何?

最佳答案

简短的回答:是的。

长答案:编译器确实在分析某些类型的“错误”方面做得更好,但他们工作的“深度”通常远低于适当的工具。特别是跨编译单元工作的工具,例如 Coverity,它可以理解(例如)一个函数可能将指针返回为 NULL,如果是这样,你的代码将会崩溃,因为你没有' t 在访问指针之前检查 NULL

静态分析工具还可以检查锁的使用情况,而编译器通常不能。

至于“效果如何”,它确实取决于您使用的工具、设置以及您对代码的测试效果。因此,“代码覆盖率”也包含在内。您是否在测试中遍历代码的每个分支?每个可能的值都会导致行为差异?静态分析工具可以检测您的测试可能无法涵盖的错误。

(显然,在您的特定业务中是否真的有意义是完全不同的讨论 - 由您的老板和他/她的老板决定)

关于c++ - 我们还需要做静态分析吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23081002/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com