Aracılığıyla paylaş


C6286

C6286 Uyarı: (< sıfır olmayan sabit > || <expression>) her zaman bir sıfır olmayan sabitidir.<expression> hiçbir zaman değerlendirilir ve yan etkileri olabilir

Bu uyarıyı bir sıfır olmayan sabit sol tarafında bir mantıksal algılandığını gösterir- veya bir test bağlamında oluşan bir işlem.Sonuçta elde edilen deyim her zaman true deðerini verir.Buna ek olarak, yan etkileri ifadeyi sağ tarafında görüntülenir ve bunlar kaybolacak.

Bu uyarıyı dikkatlice düzgün çalışması için gereken herhangi bir yan etkileri kaybolmaz emin olmak için deyimin sağındaki incelemek isteyebilirsiniz gösterir.

(!0 || <expression>) Yapım denetimli bir blok yürütülmesini zorlamak için kullanılan yaygın.

Örnek

Aşağıdaki kod, bu uyarı oluşturur:

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

Aşağıdaki kod, olası bir çözüm tarafından kesilmesini gösterir if iki ayrı bölüme INTO deyimi:

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

Ayrıca bkz.

Başvuru

Mantıksal veya işleci: ||