Serviceを読んで理解し、同意したものとみなします。スタック・オーバーフローはプログラマーとプログラミングに熱心な人のためのQ&Aサイトです。票11#defineはプリプロセッサによって展開処理されます。(宣言と定義の明確な違いはなんですか、includeと宣言の違いはなんですか)そのためコンパイラーには展開結果だけが渡されてしまい元の情報が残りません。デバッグ時に参照できない場合があります。World."に展開・結合されるのように文字列を展開してしまい、コンパイル時に1つの文字列を結合させることができます。(constの場合、それぞれ独立した定数となってしまい、コンパイル時に結合することはできません。何らか別の方法で実行時に結合することになります。)それぞれに利点と欠点がありますので、適材適所で使い分けてください。|2constは変数を宣言する際に使用します。入れ物があり、中身が固定されている状態です。defineは文字列を指定の値で全て置き換えます。違いと言えばコンパイル前に置き換えるかどうかですかね追記:使い分けの所を見落としてました。大きく気にするところではありませんが、constの方がC言語っぽい感じがします。(ポインタを使い始めるとconstよく使うかも、メモリアドレスの参照先を変更したくない時とか)ですが、switch文のcaseなどで定数を使いたい時はdefineを使わなければなりません。時と場合によりますが、defineがコンパイル前に置き換えると言った点を考えれば使い方が見えてくる気がします。自分は基本C言語系ではconstです。|0#defineはコンパイルの初期段階でコピペや置換されると考えてくださいそのため、定義後はグローバル変数のようにずっと存在し続けます。constはあくまでも変数として存在していますので記憶領域の概念が適応でき保守性が確保できます。#defineで定数が定義されていた場合可読性のために同じ名前でないといけないと思えば#undefを利用しなければなりません.またそのようなコードになってしまうと変更の際に間違えて変更する可能性もあります。そのような事態は避けなければならない。このような観点からconstで領域に制限を設けたほうが自由度の高いコードが記述できるようになると思います。|回答スタック・オーバーフローに参加してくれて、ありがとうございます!質問の回答を共有してください。回答を説明し、自分の検討結果も共有してください。意見を述べること(意見を述べるなら、参照リソース、自分の経験で意見をサポートしてください)さらにサポートが必要な場合このヘルプを参考してください。“回答を投稿”をクリックすることで利用規約、プライバシーポリシー、及びクッキーポリシーに同意したものとみなされます。タグが付いた他の質問を参照するか、自分で質問をする。質問のフィードこのRSSフィードを購読するには、このURLをコピーしてRSSリーダーに貼り付けてください。