En C et C ++, il est très facile d'écrire le code suivant avec une grave erreur.
char responseChar = getchar();
int confirmExit = 'y' == tolower(responseChar);
if (confirmExit = 1)
{
exit(0);
}
L'erreur est que l'instruction if aurait dû être:
if (confirmExit == 1)
Comme codé, il se fermera à chaque fois, car l'affectation de la confirmExitvariable se produit, puis confirmExitest utilisée comme résultat de l'expression.
Existe-t-il de bons moyens pour éviter ce type d'erreur?
if (confirmExit).
a = bou à l' a == bintérieur d'un conditionnel.