Handbuch zur dynamischen Ablaufverfolgung in Solaris

Datentypen und -größen

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.