Em C e C ++, é muito fácil escrever o código a seguir com um erro grave.
char responseChar = getchar();
int confirmExit = 'y' == tolower(responseChar);
if (confirmExit = 1)
{
exit(0);
}
O erro é que a instrução if deveria ter sido:
if (confirmExit == 1)
Conforme codificado, ele sai sempre, porque confirmExitocorre a atribuição da variável e confirmExité usado como resultado da expressão.
Existem boas maneiras de evitar esse tipo de erro?
if (confirmExit).
a = bou a == bdentro de uma condicional.