编译器警告(等级 1)C4258

“variable”:忽略 for 循环中的定义;使用封闭范围中的定义

/Ze/Zc:forScope 下,在 for 循环中定义的变量会在 for 循环结束时后超出范围。 如果变量的名称与循环变量的名称相同(但是是在封闭循环中定义的)再次在包含 for 循环的范围中使用,则会出现此警告。 例如:

// C4258.cpp
// compile with: /Zc:forScope /W1
int main()
{
   int i;
   {
      for (int i =0; i < 1; i++)
         ;
      i = 20;   // C4258 i (in for loop) has gone out of scope
   }
}