質問

いくつかのコードを見ると、別の開発者がtrueのすべてのインスタンスを!falseに変更していることに気付きました。 どうしてそうするか? thx

役に立ちましたか?

解決

trueではなく!falseを記述する正当な理由はありません。
悪い理由には、難読化(コードを読みにくくする)、個人的な好み、グローバルな検索と置換の考慮が不十分、ブール値を整数に変換する方法が含まれます。

Win32のTRUEとFALSEの定義によって混乱が生じている可能性があります。これらの定義はブール型ではなくintであり、ブール文で使用すると警告をトリガーする可能性があります。主に、ゼロ以外の値はすべて「真」ですが、「真」を確認したい場合は、ブール値の代わりに整数を使用する場合は常に1であり、このようなシェナンガンを見ることがあります。それはまだ正当な理由ではありません;-)

他のヒント

わからないので、しばらくの間C ++を書いています。彼の理由は何でも良いものではなかったのではないかと思う。

これは歴史的なことだと思います。 IIRCでは、一部のC / C ++コンパイラで、コンパイラがtrueと表現するために何を使用するかを認識している問題がありました。 falseはゼロであることがわかるので、!falseは現在のABIがtrueに設定するものです。

一般的にこれは冗長ですが、いくつかの特別なケースがありますが、それは有用ですが、私はそれを考えることができません。

次の行が必要な場合があります

#define true false

ヘッダーのどこかに happened するだけです:)

多分彼は自分のコードに多くの真実と偽りを持っているので、それを簡単に元に戻したいと思ったので、エディターの検索と置換を使うことができます

実際はわかりませんが、TRUEが1(任意のもの> 0)ではなく、FALSEがゼロなので、「falseではない」ことがあります。 = 1なので、彼は安全な場所にいます

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top