题
看一些代码,我注意到另一个开发者已将每个true的实例更改为!false。 为什么要这么做? THX
解决方案
没有充分的理由写!假而不是真
糟糕的原因可能包括混淆(使代码难以阅读),个人偏好,严重的全局搜索和替换,以及将布尔值转换为整数的恶作剧。
可能有些混淆是由Win32中的TRUE和FALSE定义引起的,这些定义不是bool类型而是int,并且在布尔语句中使用时可能会触发警告。主要是,任何非零都是“真实的”,但如果你想确保“真”的话。在使用整数而不是布尔值时总是一个,你有时会看到像这样的恶作剧。这仍然不是一个好理由; - )
其他提示
我不知道,我一直在写C ++。我怀疑他的理由是他们不是好人。
我认为这是历史性的事情。 IIRC在某些C / C ++编译器上存在问题,知道编译器将用什么来表示为真。你可以知道false是零因此!false将是当前ABI将具有的真实值。
一般来说,这是多余的,但有一些特殊情况,它有用,但我想不出一个。
如果线
可能是必要的 #define true false
只是发生在标题中的某个地方:)
也许他的代码中有这么多真假,他想轻易扭转它,他可以使用他的编辑搜索并替换,
我实际上不知道但是可能是TRUE不是1(任何> 0)而FALSE是零所以“不是假的” = 1所以他将在安全的地方
不隶属于 StackOverflow