C6319

C6319

Avertissement C6319 : L'utilisation de l'opérateur virgule au sein d'une expression testée empêche la prise en compte de l'argument de gauche lorsqu'il n'a aucun effet secondaire

Cet avertissement indique une sous-expression ignorée dans le contexte de test en raison de l'opérateur virgule (,). L'opérateur virgule présente une associativité de gauche à droite. Le résultat de l'opérateur virgule est la dernière expression évaluée. Si l'expression de gauche de l'opérateur virgule n'a aucun effet secondaire, le compilateur peut omettre la génération du code de l'expression.

Exemple

Le code suivant génère cet avertissement :

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

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

Pour corriger cet avertissement, utilisez l'opérateur logique AND, comme indiqué dans le code suivant :

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

  // code 

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

Voir aussi

Référence

Logical AND Operator: &&
Comma Operator: ,