In C e C ++, è molto facile 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, perché si verifica l'assegnazione della variabile confirmExit
, quindi confirmExit
viene utilizzato come risultato dell'espressione.
Ci sono buoni modi per prevenire questo tipo di errore?