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