In C e C ++, è molto semplice scrivere il seguente codice con un errore grave.
char responseChar = getchar();
int confirmExit = 'y' == tolower(responseChar);
if (confirmExit = 1)
{
exit(0);
}
L'errore è che l'istruzione if avrebbe dovuto essere:
if (confirmExit == 1)
Come codificato, uscirà ogni volta, poiché si verifica l'assegnazione della confirmExit
variabile, quindi confirmExit
viene utilizzato come risultato dell'espressione.
Ci sono buoni modi per prevenire questo tipo di errore?
if (confirmExit)
.
a = b
o a == b
all'interno di un condizionale.