[解決済み] 論理演算子の筆記体
質問
これは
は、私が今まで見た中で唯一の
and
,
or
と
not
がC++の実際の演算子としてリストアップされています。NetBeansでテストプログラムを書き上げると、構文エラーがあるかのように赤い下線が表示され、ウェブサイトが間違っていると思いましたが、予想通りコンパイルして実行できたので、間違っているのはNetBeansの方です。
私は見ることができます
!
よりも優先される
not
が、可読性は
and
&&
or
は、文法的な兄弟よりも大きいようです。なぜこれらのバージョンの論理演算子が存在し、一見誰も使っていないように見えるのでしょうか?これは本当に有効な C++ なのか、それとも言語とともに提供された C とのある種の互換性なのでしょうか?
どのように解決するのですか?
ヘッダでC言語発祥の
<iso646.h>
. 当時のキーボードには
&&
(など)を入力できないキーボードがあり、そのためヘッダーには
#define
を定義することで、それを支援することができます。
and
を
&&
. もちろん、時間が経つにつれて、これはあまり使われなくなりました。
C++では、これらはいわゆる
代替トークン
. あなたは
ではない
は、準拠したコンパイラでこれらのトークンを使用するために何かを含める必要があります(このように、CヘッダのC++化されたバージョンです。
<ciso646>
は空白です)。代替トークンは、スペルを除けば通常のトークンと同じです。そのため、パース時に
and
は
まさに
と同じです。
&&
と同じで、同じものを別の方法で綴っているだけです。
使い方について:めったに使われないので、使うと役に立つというより、驚いたり混乱したりすることが多いのです。普通だったら、もっと読みやすいと思うのですが、人々はとても慣れていて
&&
と
||
といった具合で、それ以外のものは邪魔になるばかりです。
EDIT: これを投稿して以来、彼らの使い方がごくわずかに増えているのを見かけました。私はまだそれらを避けています。
関連
-
[解決済み】抽象クラス型の無効なnew-expression
-
[解決済み】文字列関数で'char const*'のインスタンスを投げた後に呼び出されるterminate [閉店].
-
[解決済み】標準ライブラリにstd::endlに相当するタブはあるか?
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み] explicit キーワードの意味は?
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] ルール・オブ・スリーとは?
-
[解決済み] Pythonのif文における&&(論理和)に相当する機能
-
[解決済み】C/C++の"-->"演算子とは何ですか?
-
[解決済み】Pythonで2つの変数の論理xorを取得するにはどうすればいいですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++ 非推奨の文字列定数から「char*」への変換について
-
[解決済み】C-stringを使用すると警告が表示される。"ローカル変数に関連するスタックメモリのアドレスが返される"
-
[解決済み】変数 '' を抽象型 '' と宣言できない。
-
[解決済み】C++プログラムでのコンソールの一時停止
-
[解決済み】#include<iostream>は存在するのですが、「識別子 "cout "は未定義です」というエラーが出ます。なぜですか?
-
[解決済み】システムが指定されたファイルを見つけられませんでした。
-
[解決済み】指定範囲内の乱数で配列を埋める(C++)
-
[解決済み] 変数サイズのオブジェクトが初期化されないことがある c++
-
[解決済み] スタックアロケーションにより初期化されていない値が作成された
-
[解決済み】c++で.txtファイルから2次元の配列に読み込む