静态代码检查提示如下:
这个修改的方法已经给出来了,就是定义的变量在循环外面了
比如它给出的案例
void f(int x)
{int i = 0;if (x) {// it's safe to move 'int i = 0;' herefor (int n = 0; n < 10; ++n) {// it is possible but not safe to move 'int i = 0;' heredo_something(&i);}}
}
应该修改为
void f(int x)
{if (x) {int i = 0;for (int n = 0; n < 10; ++n) {// it is possible but not safe to move 'int i = 0;' heredo_something(&i);}}
}
当然 我们的可能不完全是这样,比如一些变量定义在try catch 外面了,等等之后的
我们的做法就是检查变量的的范围即可。