MS VC++ 6:为什么要返回!假而不是真?

Cok*_*kes 1 c++ boolean visual-c++-6

看一些代码,我注意到另一个开发者已将每个true的实例更改为!false.为什么要这么做?谢谢

Jor*_*ans 9

写作没有充分的理由!假而不是真.
糟糕的原因可能包括混淆(使代码更难阅读),个人偏好,严重的全局搜索和替换,以及将布尔值转换为整数的恶作剧.

可能有些混淆是由Win32中的TRUE和FALSE定义引起的,这些定义不是bool类型而是int,并且在布尔语句中使用时可能会触发警告.主要是,任何非零都是"真实的",但如果你想确保使用整数而不是布尔值时"真"总是一个,你有时会看到像这样的恶作剧.这还不是一个好理由;-)