В C и C ++ очень легко написать следующий код с серьезной ошибкой.
char responseChar = getchar();
int confirmExit = 'y' == tolower(responseChar);
if (confirmExit = 1)
{
exit(0);
}
Ошибка в том, что оператор if должен был быть:
if (confirmExit == 1)
Как закодировано, он будет выходить каждый раз, потому что происходит присвоение confirmExit
переменной, а затем confirmExit
используется как результат выражения.
Есть ли хорошие способы предотвратить такую ошибку?
if (confirmExit)
.
a = b
либо a == b
условное выражение .