Condividi tramite


C6287

avviso C6287: codice ridondante: le sottoespressioni di sinistra e destra sono identiche

L'avviso indica che in un'espressione è stato rilevato un elemento ridondante.

È difficile giudicare la gravità del problema senza esaminare il codice:di per sé un test duplicato è innocuo ma le conseguenze dell'eliminazione del secondo test possono essere gravi.È necessario esaminare il codice per accertarsi che non sia stato omesso un test.

Esempio

Il codice seguente genera questo avviso:

void f(int x)
{
  if ((x == 1) && (x == 1)) 
  {
    //logic 
  }
  if ((x != 1) || (x != 1))
  {
    //logic
  }
}

Nel codice seguente sono riportati diversi metodi per risolvere il problema:

void f(int x, int y)
{
  /* Remove the redundant sub-expression: */
  if (x == 1) 
  {
     // logic 
  }
  if (x != 1) 
  {
    // logic
  }
  /* or test the missing variable: */
  if ((x == 1) && (y == 1))
  {
     // logic
  }
  if ((x != 1) || (y != 1))
  {
     // logic
  }
}