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