| キーワード | 内容 | デフォルト |
| void | void型 | - |
| bool | 2値 | false |
| byte | 符号付き8ビット | 0 |
| ubyte | 符号なし8ビット | 0 |
| short | 符号付き16ビット | 0 |
| ushort | 符号なし16ビット | 0 |
| int | 符号付き32ビット | 0 |
| uint | 符号なし32ビット | 0 |
| long | 符号付き64ビット | 0 |
| ulong | 符号なし64ビット | 0 |
| cent | 符号付き128ビット | 0 |
| ucent | 符号なし128ビット | 0 |
| float | 32ビット浮動小数点数 | float.nan |
| double | 64ビット浮動小数点数 | double.nan |
| real | マシン依存最大サイズの浮動小数点数 | real.nan |
| ifloat | 虚数float | float.nan*1.0i |
| idouble | 虚数double | double.nan*1.0i |
| ireal | 虚数real | real.nan*1.0i |
| cfloat | 複素数float | float.nan+float.nan*1.0i |
| cdouble | 複素数double | double.nan+double.nan*1.0i |
| creal | 複素数real | real.nan+real.nan*1.0i |
| char | 符号なし8ビットUTF-8 | 0xFF |
| wchar | 符号なし16ビットUTF-16 | 0xFFFF |
| dchar | 符号なし32ビットUTF-32 | 0x0000FFFF |
enumの基底型は,以下のように指定する.
enum E : T {...} // TはEの基底型
typedefの基底型は,以下のように指定する.
typedef T U ; // TはUの基底型
D言語では,ポインタから非ポインタ,または非ポインタからポインタへのキャストが可能である.ただし,ポインタをガベージコレクタで割り当てられたデータへのキャストはできない.
必要に応じて,自動的に暗黙の型変換が適用される. 明示的な型変換が必要な場合を除き,typedefとenumのその基底型への変換は暗黙的におこなわれる.
typedef int maint ; int i ; myint m ; i = m ; m = i ; // ERROR m = cast(myint)i ; m = 3 ;
enum Foo {E} Foo f ; i = f ; f = i ; // ERROR f = cast(Foo)i ; f = 0 ; // ERROR f = E ;