En C y C ++, es muy fácil escribir el siguiente código con un error grave.
char responseChar = getchar();
int confirmExit = 'y' == tolower(responseChar);
if (confirmExit = 1)
{
exit(0);
}
El error es que la declaración if debería haber sido:
if (confirmExit == 1)
Según lo codificado, saldrá cada vez, porque se confirmExit
produce la asignación de la variable, y luego confirmExit
se utiliza como resultado de la expresión.
¿Hay buenas maneras de prevenir este tipo de error?
if (confirmExit)
.
a = b
o a == b
dentro de un condicional.