Condividi tramite


C6315

avviso C6315: Ordine errato delle operazioni: l'operatore AND bit per bit ha maggiore precedenza dell'operatore OR bit per bit.Aggiungere delle parentesi per chiarire lo scopo

L'avviso indica che un'espressione in un contesto di test contiene sia le operazioni AND (&) sia le operazioni OR (|) bit per bit, ma causa una costante, poiché l'operazione OR bit per bit si verifica per ultima.Per chiarire lo scopo, è necessario aggiungere parentesi.

Esempio

Il codice seguente genera questo avviso:

void f( int i )
{
  if ( i & 2 | 4 ) // warning
  {
    // code
  }
}

Per risolvere il problema, aggiungere le parentesi come riportato nel codice seguente:

void f( int i )
{
  if ( i & ( 2 | 4 ) )
  {
    // code
  }
}