Udostępnij za pośrednictwem


C6269

Ostrzeżenie C6269: możliwe niewłaściwej kolejności operacji: nieprawidłowego ignorowane

To ostrzeżenie wskazuje, że wynik wskaźnika nieprawidłowego jest ignorowana, która wywołuje pytanie, dlaczego jest czym usunąć pierwsze odwołania wskaźnik.

Kompilator będzie poprawnie zoptymalizować away nieodpłatne dereference.Jednakże w niektórych przypadkach tej wady mogą odzwierciedlać błąd pierwszeństwo lub logicznych.

Do częstych wyników tej wady jest instrukcja wyrażenia w formularzu:

*p++;

Jeśli zamiarem niniejszej instrukcji jest po prostu do zwiększania wskaźnik p, następnie znaleźć odwołania nie jest konieczne; Jednakże jeśli zamiarem jest zwiększane lokalizacji, p wskazuje, a następnie program nie będzie działać zgodnie z przeznaczeniem, ponieważ * p ++ konstrukcja jest interpretowana jako * (p++).zamiast (*p)++.

Przykład

Poniższy kod generuje ostrzeżenie to:

#include <windows.h>

void f( int *p )
{
    // code ...
  if( p != NULL )
    *p++;
    // code ...
}

Aby skorygować to ostrzeżenie, należy używać nawiasów, jak pokazano w poniższym kodzie:

#include <windows.h>

void f( int *p )
{
    // code ...
  if( p != NULL )
    (*p)++;
    // code ...
}