Compartilhar via


C6319

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

Este aviso indica uma subexpressão ignorado no contexto do teste devido, por exemplo, o operador de vírgula (,). O operador de vírgula tem associatividade de operadores da esquerda para 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

Logical AND Operator: &&

Comma Operator: ,