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

有帮助吗?

解决方案

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

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

其他提示

我不知道,我一直在写C ++。我怀疑他的理由是他们不是好人。

我认为这是历史性的事情。 IIRC在某些C / C ++编译器上存在问题,知道编译器将用什么来表示为真。你可以知道false是零因此!false将是当前ABI将具有的真实值。

一般来说,这是多余的,但有一些特殊情况,它有用,但我想不出一个。

如果线

可能是必要的

#define true false

只是发生在标题中的某个地方:)

也许他的代码中有这么多真假,他想轻易扭转它,他可以使用他的编辑搜索并替换,

我实际上不知道但是可能是TRUE不是1(任何> 0)而FALSE是零所以“不是假的” = 1所以他将在安全的地方

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top