Visual Studio の構文の強調表示では、この単語がキーワードまたは予約語であるかのように青く色付けされます。私はそれをオンラインで検索しようとしましたが、「配列」という単語は検索を無効にします。配列とは何かを説明するページがほとんどです。それは何のために使用されますか?
7 に答える
ISO 標準の予約語ではありません。Microsoft のC++/CLIは配列をcli 名前空間で定義しており、Visual Studio の構文強調表示はそれを予約語として扱います。この使用法はベンダー拡張と見なされ、国際的な C または C++ 標準の一部ではありません。
ISO C99キーワード:
自動列挙型は署名されていません extern return void をブレーク ケース フロート ショート 揮発性 signed while の char const goto sizeof _Bool static _Complex の場合は続行 デフォルトのインライン構造体 _Imaginary int スイッチを行う double long typedef そうでなければ組合を登録する
ISO C++98 キーワード:
これは二重ではありません and_eq dynamic_cast not_eq throw asm else 演算子 true 自動列挙または試行 bitand 明示 or_eq typedef bitor エクスポート プライベート typeid bool extern 保護された型名 偽りの公団を壊す ケース フロート レジスタ 符号なし を使用して reinterpret_cast のキャッチ チャーフレンドリターンバーチャル class goto short void compl if signed volatile const inline sizeof wchar_t const_cast int static while 長い static_cast xor を続行します デフォルトの可変構造体 xor_eq 名前空間スイッチを削除 新しいテンプレートを作成する
そうではありません。少なくとも標準の C/C++ にはありません。
「エントリ」が、K&R では C の予約語であるのに、C99 では予約語ではない理由をお尋ねになるかもしれません。ある時点でこの機能を追加する可能性があると考えていた人もいましたが、最終的にはやめたのです。
C++/CLI で使用されます。
Visual C++ 言語リファレンス:「array キーワードを使用すると、共通言語ランタイム ヒープに割り当てられる動的配列を作成できます。」
Visual Studio は、プリティ プリンター用にさまざまな C++ 文法を定義することに煩わされることはありませんでした。ISO C++、VC++、C++/CLI、または単に古い C - すべて同じ文法を共有しています。したがって、array や interface などの名前はすべて、キーワードであるかのように扱われます。
また、プリティ プリンターが foo.cpp で使用されている C++ 方言を見つけるのも非常に困難です。そのためのコードをコンパイルする必要があります。現在、プリティ プリンターはトークンを操作できます。つまり、コードを解析するだけで済みます。
どのエディションで?「c++ 予約語」を Google で検索しても、そのような使用法は示されません。
サンプル コードでは、「配列」を日常的に使用しています。
MSVC で単語が強調表示されているという事実は、それが C または C++ のキーワードであることを意味するものではありません。ご覧のとおり、 MSVC には 128 ビットの int 型がないにもかかわらず、__int64
のような多くの非標準のものも強調表示されます。__int128
これは予約語ではありませんが、Microsoft Visual Studio は予約語であるかのように青色でマークすることを決定しましたが、DD Malik による「C++ プログラミング第 5 版」に従っていないことは間違いありません。