Integer-Konstanten (Ganzzahlkonstanten) können in dezimaler (12345), oktaler (012345) oder hexadezimaler (0x12345) Form geschrieben werden. Oktale Konstanten (Grundzahl 8) müssen eine Null als Präfix erhalten. Hexadezimalen Konstanten (Grundzahl 16) ist entweder 0x oder 0X voranzustellen. Integer-Konstanten wird der kleinste der Datentypen int, long oder long long zugewiesen, mit dem ihr Wert dargestellt werden kann. Bei negativen Werten wird die vorzeichenbehaftete Version des entsprechenden Typs verwendet. Positive Werte, die zu groß für den Typ mit Vorzeichen sind, werden durch den entsprechenden vorzeichenlosen Typ dargestellt. An jede Integer-Konstante kann zur expliziten Angabe des D-Typs einer der folgenden Zusätze angehängt werden:
u oder U |
unsigned-Version des vom Compiler ausgewählten Typs |
l oder L |
long |
ul oder UL |
unsigned long |
ll oder LL |
long long |
ull oder ULL |
unsigned long long |
Gleitkommakonstanten werden immer in dezimaler Form dargestellt und müssen entweder ein Dezimaltrennzeichen (12.345), einen Exponent ( 123e45) oder beides enthalten (123.34e-5). Standardmäßig wird Gleitkommakonstanten der Typ double zugewiesen. An jede Gleitkommakonstante kann zur expliziten Angabe des D-Typs einer der folgenden Zusätze angehängt werden:
f oder F |
float |
l oder L |
long double |
Zeichenkonstanten werden als einzelnes Zeichen oder in ihrer Ersatzdarstellung zwischen einfachen Anführungszeichen dargestellt ('a'). Zeichenkonstanten wird der Typ int zugewiesen und sie sind gleichbedeutend mit Integer-Konstanten, deren Wert durch den Wert des entsprechenden Zeichens im ASCII-Zeichensatz bestimmt ist. Eine Liste von Zeichen und ihren Werten finden Sie unter ascii(5). Auch alle speziellen Ersatzdarstellungen in der nachfolgenden Tabelle sind in Zeichenkonstanten erlaubt. D unterstützt dieselben Ersatzdarstellungen, wie sie in ANSI-C verwendet werden.
Tabelle 2–5 Ersatzdarstellungen für Zeichen in D
\a |
Klingelzeichen |
\\ |
Gegenschrägstrich |
\b |
Rückschritt (Backspace) |
\? |
Fragezeichen |
\f |
Seitenvorschub |
\' |
(einfaches) Anführungszeichen |
\n |
Zeilentrenner |
\” |
(doppeltes) Anführungszeichen |
\r |
Wagenrücklauf |
\0oo |
Oktalwert 0oo |
\t |
(waagerechter) Tabulator |
\xhh |
Hexadezimalwert 0xhh |
\v |
Vertikal-Tabulator |
\0 |
Nullzeichen |
Indem Sie mehrere Zeichenangaben zwischen einfache Anführungszeichen setzen, können Sie Ganzzahlen erstellen, deren einzelne Byte je nach der entsprechenden Zeichenangabe initialisiert werden. Die Byte werden ab der Zeichenkonstante von links nach rechts gelesen und der entstehenden Ganzzahl entsprechend der nativen Byte-Reihenfolge des Betriebssystems in der Darstellung Big Endian oder Little Endian zugeordnet. Eine Zeichenkonstante fasst bis zu acht Zeichenangaben.
Durch Schreibung zwischen doppelten Anführungszeichen lassen sich Zeichenkettenkonstanten einer beliebigen Länge zusammensetzen ("hello"). Zeichenkettenkonstanten dürfen keine wörtlichen Zeilentrenner enthalten. Zur Angabe einer neuen Zeile innerhalb einer Zeichenkette verwenden Sie stattdessen die Ersatzdarstellung \n. Alle bereits für Zeichenkonstanten aufgeführten Sonderzeichen-Ersatzdarstellungen dürfen auch in Zeichenkettenkonstanten vorkommen. Ähnlich wie in ANSI-C werden Zeichenketten als Vektoren von Zeichen mit einem abschließenden Nullzeichen (\0) dargestellt, das implizit an jede deklarierte Zeichenkettenkonstante angefügt wird. Zeichenkettenkonstanten wird der spezielle D-Typ string zugewiesen. Der D-Compiler verfügt über besondere Leistungsmerkmale zum Vergleichen und Verfolgen von Zeichenvektoren, die als Zeichenketten deklariert wurden. Mehr darüber erfahren Sie inKapitel 6Zeichenketten.