Partilhar via


C6269

aviso C6269: possível ordem incorreta de operações: referência ignorada

Esse aviso indicar que o resultado de um ponteiro cancelará é ignorado, que eleva a questão de como o ponteiro está sendo cancelado no primeiro local.

O compilador otimizará corretamente acionado o gratuito cancelará.Em alguns casos, porém, este defeito pode refletir uma precedência ou um erro lógico.

Uma causa mais comum desse é uma instrução de defeito expressão do formulário:

*p++;

Se a intenção dessa instrução é simplesmente incrementar o ponteiro p, então desreferenciar é desnecessária; no entanto, se a intenção é incrementar o local que p estiver apontando, o programa não se comportará conforme pretendido porque a construção de *p++ é interpretada como * (p++). em vez de (*p)++.

Exemplo

O código a seguir gera este aviso:

#include <windows.h>

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

Para corrigir esse aviso, use parênteses conforme mostrado no seguinte código:

#include <windows.h>

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