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 confirmExitvariabile, quindi confirmExitviene utilizzato come risultato dell'espressione.
Ci sono buoni modi per prevenire questo tipo di errore?
if (confirmExit).
a = bo a == ball'interno di un condizionale.