1. ホーム
  2. c++

[解決済み] 論理演算子の筆記体

2022-11-02 16:07:39

質問

これは は、私が今まで見た中で唯一の and , ornot がC++の実際の演算子としてリストアップされています。NetBeansでテストプログラムを書き上げると、構文エラーがあるかのように赤い下線が表示され、ウェブサイトが間違っていると思いましたが、予想通りコンパイルして実行できたので、間違っているのはNetBeansの方です。

私は見ることができます ! よりも優先される not が、可読性は and && or は、文法的な兄弟よりも大きいようです。なぜこれらのバージョンの論理演算子が存在し、一見誰も使っていないように見えるのでしょうか?これは本当に有効な C++ なのか、それとも言語とともに提供された C とのある種の互換性なのでしょうか?

どのように解決するのですか?

ヘッダでC言語発祥の <iso646.h> . 当時のキーボードには && (など)を入力できないキーボードがあり、そのためヘッダーには #define を定義することで、それを支援することができます。 and&& . もちろん、時間が経つにつれて、これはあまり使われなくなりました。

C++では、これらはいわゆる 代替トークン . あなたは ではない は、準拠したコンパイラでこれらのトークンを使用するために何かを含める必要があります(このように、CヘッダのC++化されたバージョンです。 <ciso646> は空白です)。代替トークンは、スペルを除けば通常のトークンと同じです。そのため、パース時に and まさに と同じです。 && と同じで、同じものを別の方法で綴っているだけです。

使い方について:めったに使われないので、使うと役に立つというより、驚いたり混乱したりすることが多いのです。普通だったら、もっと読みやすいと思うのですが、人々はとても慣れていて &&|| といった具合で、それ以外のものは邪魔になるばかりです。

EDIT: これを投稿して以来、彼らの使い方がごくわずかに増えているのを見かけました。私はまだそれらを避けています。