C6319

更新:2007 年 11 月

警告 C6319:在被测试的表达式中使用了逗号运算符,导致左侧的参数在无副作用时被忽略

此警告意味着,由于使用了逗号运算符 (,) 而忽略了测试上下文中的子表达式。逗号运算符具有从左向右的关联性。逗号运算符的结果是最后计算的表达式。如果逗号运算符左侧的表达式没有任何副作用,则编译器可能不再生成该表达式的代码。

示例

下面的代码生成此警告:

void f()
{
  int i;
  int x[10];

  // code 
  for ( i = 0; x[i] != 0, x[i] < 42; i++)  // warning
  {
    // code
  }
}

若要更正此警告,请使用逻辑与运算符,如下面的代码所示:

void f()
{
  int i;
  int x[10];

  // code 

  for ( i = 0; (x[i] != 0) && (x[i] < 42); i++) 
  {
    // code
  }
} 

请参见

参考

Logical AND Operator: &&

Comma Operator: ,