Trong C và C ++, rất dễ viết mã sau đây với một lỗi nghiêm trọng.
char responseChar = getchar();
int confirmExit = 'y' == tolower(responseChar);
if (confirmExit = 1)
{
exit(0);
}
Lỗi là câu lệnh if nên có:
if (confirmExit == 1)
Như được mã hóa, nó sẽ thoát ra mỗi lần, bởi vì việc gán confirmExitbiến xảy ra, sau đó confirmExitđược sử dụng làm kết quả của biểu thức.
Có những cách tốt để ngăn chặn loại lỗi này?
if (confirmExit).
a = bhoặc a == btrong một điều kiện.