1. ホーム
  2. c++

[解決済み] C++ "const "キーワードのポイントは何ですか?重複

2022-03-13 01:32:09

質問

というキーワードを使う意味は何でしょうか? const 例えば、ゲームを作るとき、まず最初にすることのひとつは、その幅と高さを設定することです。そして、ほとんどの場合、例えば、次のように使います。

const int Width

そして

const int height

しかし、このようなことをする意味はあるのでしょうか? constを使わなくても同じことができますし、問題なく動作します。

あくまで例ですが、今迷っているのは

を使う意味は何ですか? const キーワードは、変数を変更しないのであれば、どこにでもあるのでしょうか?

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

非網羅的な理由のリスト。

  1. ソフトウェアエンジニアリング(SWE)。SWEは単なるプログラミングではなく、他の人と一緒に、時間をかけてプログラミングすることです。

    const は、不変量を明示的に表現することで、自分や他の人がコードについて推論できるようにします。プログラムが大きくなると、これらの不変量はただ記憶しておくだけでは済まなくなります。そのため、プログラミング言語で不変量を符号化することが有効です。

  2. 最適化のチャンス

    ある値が変化しないという知識があれば、コンパイラは他の方法では不可能な最適化を行うことができる。これを最大限に活用するために constexpr は、実行時だけでなく、コンパイル時にも値を知ることができることを意味します。これは、マルチスレッドの可能性があるコンテキストでは、さらに重要になります。

    C/C++のconstはどのような最適化を行うのですか?

    プログラム全体の解析を省くと、もっと長い答えが必要になりますし、一般的なC++プログラムにはほとんど適用できません。しかし、プログラム全体の解析によって、関数、翻訳ユニット、ライブラリの間で渡される変数の定数について、解析器やコンパイラが推論することができます。