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 confirmExit
variable se produit, puis confirmExit
est utilisée comme résultat de l'expression.
Existe-t-il de bons moyens pour éviter ce type d'erreur?
if (confirmExit)
.
a = b
ou à l' a == b
intérieur d'un conditionnel.