1. ホーム
  2. c++

[解決済み] defineとconstの違いは何ですか?[重複あり]

2022-03-02 18:45:41

質問

<ブロッククオート

重複の可能性があります。
なぜ定数を定義するために#defineを使うのですか?
c++のマクロとconstの違い
C++ - enumとconstと#defineの比較

を使用した場合、どのような違いがあるのでしょうか? #defineconst を定数作成に使用できますか?また、どちらがパフォーマンス的に有利なのでしょうか?当然ながら、私は const を検討するつもりですが #define ということであれば、このままでもいいと思います。

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

その #define ディレクティブは プリプロセッサー ディレクティブを使用します。プリプロセッサーはこれらのマクロを本体 以前 コンパイラに表示されます。これは、ソースコードの自動検索と置換とでも考えてください。

const変数の宣言は、言語内の実際の変数を宣言するもので、実際の変数と同じように、そのアドレスを取得し、渡し、使用し、キャスト/変換するなど、使用することができます。

あ、パフォーマンスね。しかし、コンパイラの最適化レベルでは、定数値はコンパイル時にすでに置換され、折りたたまれているため、違いはありません。しかし、型チェックやデバッガにコードを知らせるという大きな利点があるので、const変数を使わない理由はないでしょう。