Condividi tramite


C6287

Aggiornamento: novembre 2007

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
  }
}