Udostępnij za pośrednictwem


C6319

Ostrzeżenie C6319: użycie operatora przecinka w badanym wyrażeniu powoduje, że argument po lewej stronie zostanie zignorowany, jeśli nie spowoduje to żadnych efektów ubocznych

To ostrzeżenie wskazuje ignorowane wyrażenie podrzędne w kontekście testu związane z operatorem przecinka (,).Operator przecinka posiada łączność od lewej do prawej.Wynik operatora przecinka jest szacowany w ostatnim wyrażeniu.Jeśli wyrażenie po lewej stronie operatora przecinka nie powoduje skutków ubocznych, kompilator może pominąć generowanie kodu dla wyrażenia.

Przykład

Poniższy kod generuje to ostrzeżenie:

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

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

Aby poprawić to ostrzeżenie, użyj operatora logicznego AND, jak pokazano w poniższym kodzie:

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

  // code 

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

Zobacz też

Informacje

Logiczny Operator I: & &

Operator przecinek:,