[解決済み] C++ "const "キーワードのポイントは何ですか?重複
質問
というキーワードを使う意味は何でしょうか?
const
例えば、ゲームを作るとき、まず最初にすることのひとつは、その幅と高さを設定することです。そして、ほとんどの場合、例えば、次のように使います。
const int Width
そして
const int height
しかし、このようなことをする意味はあるのでしょうか? constを使わなくても同じことができますし、問題なく動作します。
あくまで例ですが、今迷っているのは
を使う意味は何ですか?
const
キーワードは、変数を変更しないのであれば、どこにでもあるのでしょうか?
どのように解決するのですか?
非網羅的な理由のリスト。
-
ソフトウェアエンジニアリング(SWE)。SWEは単なるプログラミングではなく、他の人と一緒に、時間をかけてプログラミングすることです。
const
は、不変量を明示的に表現することで、自分や他の人がコードについて推論できるようにします。プログラムが大きくなると、これらの不変量はただ記憶しておくだけでは済まなくなります。そのため、プログラミング言語で不変量を符号化することが有効です。 -
最適化のチャンス
ある値が変化しないという知識があれば、コンパイラは他の方法では不可能な最適化を行うことができる。これを最大限に活用するために
constexpr
は、実行時だけでなく、コンパイル時にも値を知ることができることを意味します。これは、マルチスレッドの可能性があるコンテキストでは、さらに重要になります。例 C/C++のconstはどのような最適化を行うのですか?
プログラム全体の解析を省くと、もっと長い答えが必要になりますし、一般的なC++プログラムにはほとんど適用できません。しかし、プログラム全体の解析によって、関数、翻訳ユニット、ライブラリの間で渡される変数の定数について、解析器やコンパイラが推論することができます。
関連
-
[解決済み】コンストラクターでのエラー:識別子を期待されますか?
-
[解決済み】1つ以上の多重定義されたシンボルが見つかる
-
[解決済み] 数値定数の前にunqualified-idを付けて、数値を定義することを期待する。
-
[解決済み] explicit キーワードの意味は?
-
[解決済み] ルール・オブ・スリーとは?
-
[解決済み] const int*、const int * const、int const *の違いは何ですか?
-
[解決済み] C#のconstとreadonlyの違いは何ですか?
-
[解決済み] Static readonly」対「const」。
-
[解決済み】C/C++の"-->"演算子とは何ですか?
-
[解決済み] Intel CPU の _mm_popcnt_u64 で、32 ビットのループカウンターを 64 ビットに置き換えると、パフォーマンスが著しく低下します。
最新
-
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++ - 解放されるポインタが割り当てられていないエラー
-
[解決済み】C++でユーザー入力を待つ【重複あり
-
[解決済み】変数 '' を抽象型 '' と宣言できない。
-
[解決済み】「corrupted size vs. prev_size」glibc エラーを理解する。
-
[解決済み】C++エラー:の初期化に一致するコンストラクタがありません。
-
[解決済み] 既に.objで定義されている-二重包含はない
-
[解決済み】C++プログラムでのコンソールの一時停止
-
[解決済み】エラー。switchステートメントでcaseラベルにジャンプする
-
[解決済み】クラスのコンストラクタへの未定義参照、.cppファイルの修正も含む
-
[解決済み] コンストコレクトネスを売り込む