ソースコード内で、定数に名前(識別子)を付けたもののことです。
記号定数を用いると、500
とか 'c'
といった、それだけを見ても意味を理解できないような定数(マジックナンバー)をソースコード内に直接記述するよりも分かりやすくなり、可読性を高められます。また、値を変更する際に、修正すべき場所を見逃すミスを防ぐ効果があります。
非常によく似た用語に「名前付き定数」があります。実際同じ意味で使うこともありますが、記号定数の方がやや広い意味としていることもあり、名前付き定数は型やスコープを持った定数であることを意味するように使われることがあります。
記号定数を記述する方法はプログラミング言語によって異なります。
C言語では、#define によるオブジェクト形式マクロを使います(C言語編第23章)。
#define ARRAY_SIZE 500
この記述以降、ARRAY_SIZE という名前は、500
に置換されたように扱われるため、500
を意味する記号定数として使えます。
#define には、マクロによる置換であることによる危険性もあるため、const や constexpr(C23以降)を用いることもあります。ただし、const を使う場合は定数とはみなせず、読み取り専用の変数という扱いであるため、厳密にいえば記号定数ではありません。
const int ARRAY_SIZE = 500;
constexpr int ARRAY_SIZE = 500;
C言語と同様ですが、const でも整数型や列挙型であれば定数として扱えるため、記号定数であると考えられます。ただし、constexpr が C++11 から使用できるので、こちらを使った方が良いです。
Programming Place Plus のトップページへ
はてなブックマーク に保存 | Pocket に保存 | Facebook でシェア |
X で ポスト/フォロー | LINE で送る | noteで書く |
![]() |
管理者情報 | プライバシーポリシー |