Sdílet prostřednictvím


C6286

upozornění C6286: (< nulová konstantní > || <expression>) je vždy nula konstanta.<expression> nikdy vyhodnoceny a může mít vedlejší účinky

Toto upozornění znamená, že konstanta nula byl nalezen na levé straně logické- nebo operace v kontextu test.Vždy výsledný výraz vyhodnocen jako PRAVDIVÝ.Zdá se, že pravé straně výraz má vedlejší účinky a budou ztraceny.

Toto upozornění znamená, že může přezkoumat pravé straně výraz pečlivě, aby žádné vedlejší účinky, potřebné pro správnou funkčnost není ztracena.

(!0 || <expression>) Konstrukce běžně používané vynutit spuštění řízené bloku.

Příklad

Následující kód vygeneruje toto upozornění:

#include <stdlib.h>
#include <stdio.h>
#define INPUT_TYPE 1 

int test();

void f()
{
  if (INPUT_TYPE || test()) 
  {
    puts("INPUT_TYPE == 1, expression not evaluated");
    // code...
  }
  else
  {
    puts("INPUT_TYPE == 0. Call to test() returned 0");
    // code...
  }
}

Následující kód ukazuje jedním z možných řešení podle rozdělení if prohlášení do dvou samostatných částí:

#include <stdlib.h>
#include <stdio.h>
#define INPUT_TYPE 1 

int test();

void f()
{
  int i;
  if (INPUT_TYPE) 
  {
    i = test();
    // code...
  }
  else
  {
    puts("INPUT_TYPE false");
    // code...
  }
}

Viz také

Referenční dokumentace

Logické nebo operátor: ||