In D stehen Ihnen die Grunddatentypen für Ganzzahlen- und Fließpunktkonstanten zur Verfügung. In D-Programmen können arithmetische Operationen nur an Ganzzahlen vorgenommen werden. Gleitkommakonstanten sind zum Initialisieren von Datenstrukturen zulässig, aber die Gleitkommaarithmetik ist in D nicht erlaubt. D stellt zum Schreiben von Programmen ein 32-Bit- und 64-Bit-Datenmodell zur Verfügung. Bei der Ausführung des Programms wird das native Datenmodell des aktiven Betriebssystemkernels verwendet. Mit isainfo -b lässt sich das native Datenmodell des jeweiligen Systems ermitteln.
Die folgende Tabelle enthält die Namen der Integer-Typen und ihre Größe in beiden Datenmodellen. In der nativen Byte-Kodierung des Systems werden Integer-Typen stets als Zweierkomplement dargestellt.
Tabelle 2–2 Integer-Datentypen in D
Typname |
32-Bit-Größe |
64-Bit-Größe |
---|---|---|
char |
1 Byte |
1 Byte |
short |
2 Byte |
2 Byte |
int |
4 Byte |
4 Byte |
long |
4 Byte |
8 Byte |
long long |
8 Byte |
8 Byte |
Integer-Typen können das Präfix signed (mit Vorzeichen) oder unsigned (ohne Vorzeichen) erhalten. Wenn kein Vorzeichen-Kennzeichner vorhanden ist, gilt der Datentyp als vorzeichenbehaftet. Der D-Compiler stellt außerdem die Typ-Aliasnamen in folgender Tabelle bereit:
Tabelle 2–3 Aliasnamen für Integer-Typen in D
Typname |
Beschreibung |
---|---|
int8_t |
1-Byte-Integer mit Vorzeichen |
int16_t |
2-Byte-Integer mit Vorzeichen |
int32_t |
4-Byte-Integer mit Vorzeichen |
int64_t |
8-Byte-Integer mit Vorzeichen |
intptr_t |
Integer mit Vorzeichen der Größe eines Zeigers |
uint8_t |
1-Byte-Integer ohne Vorzeichen |
uint16_t |
2-Byte-Integer ohne Vorzeichen |
uint32_t |
4-Byte-Integer ohne Vorzeichen |
uint64_t |
8-Byte-Integer ohne Vorzeichen |
uintptr_t |
Integer ohne Vorzeichen der Größe eines Zeigers |
Diese Typ-Aliasnamen haben die gleiche Wirkung wie die Namen des entsprechenden Grundtyps in der vorigen Tabelle und sind für jedes Datenmodell angemessen definiert. So ist beispielsweise der Typname uint8_t ein Aliasname für den Typ unsigned char. Wie Sie eigene Typ-Aliasnamen für Ihre D-Programme definieren können, erfahren Sie in Kapitel 8Typ- und Konstantendefinitionen.
Aus Gründen der Kompatibilität mit ANSI-C-Deklarationen und -Typen bietet D auch Gleitkommatypen. Gleitkomma-Operatoren werden in D nicht unterstützt. Es ist allerdings möglich, Gleitkomma-Datenobjekte mit der Funktion printf() zu verfolgen und zu formatieren. Die Gleitkommatypen in der folgenden Tabelle sind zulässig:
Tabelle 2–4 Gleitkomma-Datentypen in D
Typname |
32-Bit-Größe |
64-Bit-Größe |
---|---|---|
float |
4 Byte |
4 Byte |
double |
8 Byte |
8 Byte |
long double |
16 Byte |
16 Byte |
Außerdem steht in D der spezielle Typ string zur Darstellung von ASCII-Zeichenketten zur Verfügung. Zeichenketten werden in Kapitel 6Zeichenketten näher erläutert.