何人かの人々は、2番目を支持して主張しています。私は彼らに同意しません。(明らかに) 最初の=
vs.==
にはマイナーな問題がありましたが、それはマイナーな問題であると私は主張します。
はるかに大きな問題は、(特に急いでいる場合) 人々がエラー チェックをスキップするのがあまりにも一般的であるif (whatever == -1)
ことです。コードとエラーのチェックは実際には必要ありません。これは本当に悪い習慣です。これを読んでいるすべての人が、このようなエラーチェックをスキップした実際のコードを見たことがあることを事実上保証できます。
このようなコードでは、ファイルを開こうとする試みと、その際のエラーのチェックは、密接に結びついている必要があります。この 2 つを同じステートメントに入れると、適切な意図が反映されます。この 2 つを分離するのは明らかに間違っています。理由の如何を問わず、いつでも分離するべきではありません。これは単一の操作である必要があるため、単一の操作としてコーディングする必要があります。常に単一の操作として考え、コード化する必要があります。
私の意見では、そうしないことの言い訳は非常に弱いです。現実には、C を使用する人は誰でも、代入と条件付きテストを組み合わせたコードを読める必要があります。明らかな例として、while ((ch=getchar()) != EOF)
かなりのようなループは、割り当てとテストを組み合わせて記述する必要があります。個別にテストしようとすると、EOF
通常、コードが正しく機能しません。コードは大幅に複雑になります。
-
対の問題も同様==
です。そもそも欠陥が見えなかったので、2つを分離することで問題を回避するためにどれだけの効果があったかはわかりませんが、おそらくほとんど違いはなかったと思います. 条件であるはずのものに割り当てのみが含まれている場合に警告するコンパイラは、何年も前から存在しています (gcc など)。要するに、この投稿の一部で特定のタイプミスを犯し、他の部分では特定のタイプミスを犯していないという事実は、関連するものについて多くのことを証明しません (または正直に示してもいません)。二人の難しさ。
そのような証拠に基づいて、「 not」は「immediately」よりもタイプするのが難しいと思われる.それは前の文ですぐに出てきました。どのくらいの頻度でタイプミスしたかというと、「the」は英語で最も難しい単語の 1 つです。