6

==人々が平等をチェックするよりも多くの割り当てを行うと彼らが考えたので、それが平等と代入のために選ばれたことを私は知って=います---しかし、確かに彼らはブール論理よりも少し手間がかかるとは思わなかったのですか?

&and|を論理演算子として、反対の方法をとってみませんか?

4

1 に答える 1

9

馬の口から:

言語に名前が付けられた後も、たとえば演算子&&||演算子の導入など、急速な変化が続きました。BCPLおよびBでは、式の評価はコンテキストに依存します。式の値をゼロと比較するifおよびその他の条件ステートメント内で、これらの言語はand(&)およびor(|)演算子に特別な解釈を配置します。通常のコンテキストでは、ビット単位で動作しますが、Bステートメントでは

    if (e1 & e2) ...
コンパイラーは評価する必要がe1あり、それがゼロ以外の場合は評価しe2、それもゼロ以外の場合は、ifに依存するステートメントを詳しく説明します。&要件は、および|に再帰的に下降します。e1および内の演算子e2。このような「真理値」コンテキストでのブール演算子の短絡セマンティクスは望ましいように見えましたが、演算子のオーバーロードを説明して使用することは困難でした。Alan Snyderの提案で、メカニズムをより明確にするために&&and||演算子を導入しました。

Cは真空中で作成されたものではないことを忘れないでください。その奇妙さの多くは、BCPLとBに起因する可能性があります。

于 2012-05-30T02:42:35.543 に答える