直定数
読み:ちょくていすう
外語:literal

 プログラム、ステートメントに、内容そのままに書かれた定数のこと。英語で「リテラル」といい、こちらの表現が広く使われている。
目次

概要
 直定数(リテラル)が利用できないプログラミング言語は、おそらく存在しない。それほどに基本的なものである。
 高級言語においては、主に次のような直定数が存在する。

特徴

数値直定数

整数直定数
 直定数のもっとも基本的なものは、整数値を即値で与えるものである。
 最もシンプルなものは10進数のみが利用できるが、さまざまな基数に対応するプログラミング言語もある。

10進数
 最も普通の数値。
 CC++Javaでは、0以外の数字で始まる数字の列が、10進数の直定数である。但し、ゼロ自体は0と書かれる。
 BASICDelphiでは、数字の列をそのまま書けば、10進数の直定数である。

2進数
 BASICでは、&Bから始まり、0と1のみの数字の列が、2進数の直定数である。
 CJavaでは、標準では2進数の直定数は存在しない。2進数は、8進数などより遥かに多く使われているはずにも関わらず、である。
 Delphiにも2進数直定数は存在しない。
 但しC/C++では実装により、0bまたは0Bから始まり、0と1のみの数字の列を、2進数の直定数とするものがあった。例えばGCCではGCC 4.3以降で対応した。他にも組み込み系のCコンパイラーで対応する例が散見される。需要が高いからだろう。
 C++では、C++14以降で、この機能を公式に採用した。
 Swiftでは、当初よりC++と同様に0bから始まる仕様を採用した。

8進数
 CC++Javaでは、0から始まり、0〜7までの数字の列が、8進数の直定数である。
 BASICでは、&Oから始まり、0〜7までの数字の列が、8進数の直定数である。
 Delphiには8進数直定数は存在しない。
 Swiftでは、0oから始まり、0〜7までの数字の列が、8進数の直定数である。C/C++と違い、0oとなっている。

16進数
 CC++Javaでは、0xまたは0Xから始まり、0〜9、A〜Fからなる文字列が、16進数の直定数である。
 BASICでは、&Hから始まり、0〜9、A〜Fからなる文字列が、16進数の直定数である。
 DelphiやTurbo Pascalでは、$から始まり、0〜9、A〜Fからなる文字列が、16進数の直定数である。
 いずれも、A〜Fは大文字・小文字を問わない。

浮動小数点数直定数
 浮動小数点数を表わす直定数である。基本的には、次のスタイルで表現される。
 整数部 小数点 小数部 指数部
 整数部は原則として10進数の数値だが、1999(平成11)年版のCであるC99(ISO/IEC 9899:1999)では、整数部に16進数を用いることができる。
 小数点は、プログラミング言語界の標準はピリオドである。
 小数部は原則として10進数の数値である。
 指数部は、区切りの記号のあと、+または−を付け、指数の値を10進数で記述する。+は省略できる。C/C++の場合、指数部の区切りがeまたはEなら単精度、dまたはDなら倍精度、qまたはQなら4倍精度である。

文字直定数
 C/C++では一文字を'で括ったものを文字直定数という。
 例えば、'A'のようにして用いる。

文字列直定数
 C/C++では、0文字以上の文字列を"で括ったものを文字列直定数という。

boolean直定数
 trueまたはfalseのいずれかである。

null直定数
 空参照を表現する定数であり、一般にnullで表わす。
 この型は、JavaJavaScriptPHPなどの言語にある。
 C++でもC++11からnullptrが追加された。

ヒアドキュメント
 PerlRubyなどにある、文字列直定数の拡張的機能。

再検索