Condividi tramite


C6319

avviso C6319: se si utilizza l'operatore virgola in un'espressione testata, l'argomento a sinistra viene ignorato se privo di effetti collaterali

L'avviso indica una sottoespressione ignorata in un contesto di test a causa dell'operatore virgola (,). L'operatore virgola presenta un'associatività da sinistra verso destra. Il risultato dell'operatore virgola è l'ultima espressione valutata. Se l'espressione a sinistra dell'operatore virgola non ha effetti collaterali, il compilatore può omettere la generazione del codice per l'espressione.

Esempio

Il codice seguente genera questo avviso:

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

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

Per risolvere il problema, utilizzare l'operatore logico AND come riportato nel codice seguente:

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

  // code 

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

Vedere anche

Riferimenti

Logical AND Operator: &&

Comma Operator: ,