「マジックナンバー (プログラム)」の版間の差分

編集の要約なし
(余計な編集を差し戻し。理由は記事中のコメントを参照。)
編集の要約なし
 
これらマジックナンバーを避けるため、マジックナンバーが書いてある箇所を[[定数 (プログラミング)|定数]]や[[列挙型]]に置き換えるといった処置がとられる。定数は意味のわかりやすいような名前を付けることができるため、一読して数値の意味を理解できるからである。ここで、定数の初期化の際に右辺値に書かれる数値までマジックナンバーやハードコーディングとは呼ばない。
 
また、[[1]]や[[0]]はそれ自体が「真」・「偽」などの意味([[真理値]])を示しうる数値であり、使われる文脈によってはマジックナンバーとは呼ばないこともある。ただし古いC言語では、意味を明確にするため、1/0の数値を直接用いるのではなく、<code>TRUE</code>や<code>FALSE</code>といったシンボルを明示的に定義して利用することがあった
<syntaxhighlight lang="c">
#define TRUE 1
#define FALSE 0
</syntaxhighlight>
 
現在のC言語規格案では、
 
_Bool Definitions For true and false.
 
を採用している<ref>ISO IEC 9899 Programming language C WDN2731 http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2731.pdf</ref>。
 
== フォーマット識別子 ==
 
このようにマジックナンバーを含めてプログラムに決め打ちの値を埋め込むことを、'''[[ハードコーディング]]'''と言う。
 
== 出典 ==
{{Reflist}}
 
{{デフォルトソート:ましつくなんはあ}}