У 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
в умовному, або всередині нього.