Partilhar via


C6319

Aviso C6319: usar o operador de vírgula em uma expressão testada faz com que o argumento esquerdo seja ignorado quando ele tem sem efeitos colaterais

Este aviso indica uma subexpressão ignorado no contexto do teste por causa de um operador vírgula (,).O operador de vírgula tem associatividade da esquerda para a direita.O resultado do operador de vírgula é a última expressão analisada.Se a expressão à esquerda para o operador de vírgula não tem efeitos colaterais, o compilador pode omitir a geração de código para a expressão.

Exemplo

O código a seguir gera este aviso:

void f()
{
  int i;
  int x[10];

  // code 
  for ( i = 0; x[i] != 0, x[i] < 42; i++)  // warning
  {
    // code
  }
}

Para corrigir esse aviso, use o operador lógico and, conforme mostrado no código a seguir:

void f()
{
  int i;
  int x[10];

  // code 

  for ( i = 0; (x[i] != 0) && (x[i] < 42); i++) 
  {
    // code
  }
} 

Consulte também

Referência

Operador lógico and: & &

Operador vírgula:,