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