Предупреждение C6319

Использование оператора-запятой в тестируемом выражении приводит к тому, что левый аргумент игнорируется, если он не имеет побочных эффектов

Замечания

Это предупреждение указывает на пропущенное вложенное выражение в тестовом контексте из-за оператора запятой (,). Оператор-запятая имеет ассоциативность слева направо. Результатом оператора запятой является последнее выражение. Если левое выражение для оператора запятой не имеет побочных эффектов, компилятор может опустить создание кода для выражения.

Имя анализа кода: IGNOREDBYCOMMA

Пример

Следующий код создает это предупреждение:

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

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

Чтобы исправить это предупреждение, используйте логический оператор AND, как показано в следующем коде:

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

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

См. также