gpt4 book ai didi

c++ - 代码分析在 VS 2010 中不起作用

转载 作者:行者123 更新时间:2023-11-28 07:44:49 25 4
gpt4 key购买 nike

我使用 VS2010 创建了一个控制台应用程序,如下所示

int test(int i)
{
if ( i == 0 )
return 0;
else
return 1;
int j = 2;
j++;

return j;
}

void deadCode(char * pa)
{
printf("%s", pa);
}

int _tmain(int argc, _TCHAR* argv[])
{
test(2);
return 0;
}

我勾选了“在构建时为 C/C++ 启用代码分析”并选择规则集“Microsoft All Rules”,当我构建项目时,我得到了

1>运行代码分析:

1> 运行代码分析...

1> 代码分析完成 -- 0 个错误,0 个警告

我预计 test() 中的粗体部分会出现“CA1804”警告,对于死代码 deadCode() 应该会显示另一个警告。

我的问题是为什么代码分析没有发现缺陷?我还尝试创建仅启用 CA1804 警告的规则集,但结果与上述相同(Microsoft All Rules)。

有什么想法吗?

最佳答案

  • 未使用的函数不是“死代码”。想象一下,您正在编写一个库 - 它可能会向其用户公开它自己不使用的功能。
  • 至于 CA1804,我只能做出假设:大概分析不够深入,无法创建完整的控制流图,并注意到 if/else block 之后的代码不能达不到。但即使它进行了全面分析,我也希望在 if block 之后对 test() 部分发出“死代码”警告,而不是“未使用的本地”警告 - 如果代码可访问,将使用 j

关于c++ - 代码分析在 VS 2010 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15101056/

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