D Programmierung - Datentypen
In der Programmiersprache D beziehen sich Datentypen auf ein umfangreiches System, das zum Deklarieren von Variablen oder Funktionen verschiedener Typen verwendet wird. Der Typ einer Variablen bestimmt, wie viel Speicherplatz sie einnimmt und wie das gespeicherte Bitmuster interpretiert wird.
Die Typen in D können wie folgt klassifiziert werden:
Sr.Nr. | Typen & Beschreibung |
---|---|
1 | Basic Types Sie sind arithmetische Typen und bestehen aus den drei Typen: (a) Ganzzahl, (b) Gleitkomma und (c) Zeichen. |
2 | Enumerated types Sie sind wieder arithmetische Typen. Sie werden verwendet, um Variablen zu definieren, denen im gesamten Programm nur bestimmte diskrete Ganzzahlwerte zugewiesen werden können. |
3 | The type void Der Typbezeichner void gibt an, dass kein Wert verfügbar ist. |
4 | Derived types Sie umfassen (a) Zeigertypen, (b) Array-Typen, (c) Strukturtypen, (d) Unionstypen und (e) Funktionstypen. |
Die Array- und Strukturtypen werden zusammen als Aggregattypen bezeichnet. Der Typ einer Funktion gibt den Typ des Rückgabewerts der Funktion an. Wir werden im folgenden Abschnitt grundlegende Typen sehen, während andere Typen in den kommenden Kapiteln behandelt werden.
Ganzzahlige Typen
In der folgenden Tabelle sind Standard-Integer-Typen mit ihren Speichergrößen und Wertebereichen aufgeführt.
Art | Speichergröße | Wertebereich |
---|---|---|
Bool | 1 Byte | falsch oder wahr |
Byte | 1 Byte | -128 bis 127 |
ubyte | 1 Byte | 0 bis 255 |
int | 4 Bytes | -2.147.483.648 bis 2.147.483.647 |
uint | 4 Bytes | 0 bis 4,294,967,295 |
kurz | 2 Bytes | -32.768 bis 32.767 |
kurz | 2 Bytes | 0 bis 65.535 |
lange | 8 Bytes | -9223372036854775808 bis 9223372036854775807 |
ulong | 8 Bytes | 0 bis 18446744073709551615 |
Um die genaue Größe eines Typs oder einer Variablen zu erhalten, können Sie die verwenden sizeofOperator. Der Ausdruckstyp (sizeof) gibt die Speichergröße des Objekts oder Typs in Bytes an. Im folgenden Beispiel wird die Größe des Typs int auf jedem Computer ermittelt.
import std.stdio;
int main() {
writeln("Length in bytes: ", ulong.sizeof);
return 0;
}
Wenn Sie das obige Programm kompilieren und ausführen, wird das folgende Ergebnis erzielt:
Length in bytes: 8
Gleitkommatypen
In der folgenden Tabelle werden Standard-Gleitkommatypen mit Speichergrößen, Wertebereichen und deren Zweck aufgeführt.
Art | Speichergröße | Wertebereich | Zweck |
---|---|---|---|
schweben | 4 Bytes | 1,17549e-38 bis 3,40282e + 38 | 6 Dezimalstellen |
doppelt | 8 Bytes | 2,22507e-308 bis 1,79769e + 308 | 15 Dezimalstellen |
echt | 10 Bytes | 3,3621e-4932 bis 1,18973e + 4932 | entweder der größte Gleitkommatyp, den die Hardware unterstützt, oder double; je nachdem, welcher Wert größer ist |
ifloat | 4 Bytes | 1,17549e-38i bis 3,40282e + 38i | imaginärer Wert Art des Schwimmers |
idouble | 8 Bytes | 2,22507e-308i bis 1,79769e + 308i | imaginärer Wert Typ von doppelt |
Ich echt | 10 Bytes | 3,3621e-4932 bis 1,18973e + 4932 | imaginärer Wert Typ von real |
cfloat | 8 Bytes | 1,17549e-38 + 1,17549e-38i bis 3,40282e + 38 + 3,40282e + 38i | komplexer Zahlentyp aus zwei Schwimmern |
cdouble | 16 Bytes | 2,22507e-308 + 2,22507e-308i bis 1,79769e + 308 + 1,79769e + 308i | komplexer Zahlentyp aus zwei Doppel |
real | 20 Bytes | 3,3621e-4932 + 3,3621e-4932i bis 1,18973e + 4932 + 1,18973e + 4932i | komplexer Zahlentyp aus zwei Realzahlen |
Im folgenden Beispiel wird der von einem Float-Typ belegte Speicherplatz und seine Bereichswerte gedruckt.
import std.stdio;
int main() {
writeln("Length in bytes: ", float.sizeof);
return 0;
}
Wenn Sie das obige Programm kompilieren und ausführen, wird unter Linux das folgende Ergebnis erzielt:
Length in bytes: 4
Zeichentypen
In der folgenden Tabelle sind Standardzeichentypen mit Speichergrößen und deren Zweck aufgeführt.
Art | Speichergröße | Zweck |
---|---|---|
verkohlen | 1 Byte | UTF-8-Codeeinheit |
wchar | 2 Bytes | UTF-16-Codeeinheit |
dchar | 4 Bytes | UTF-32-Codeeinheit und Unicode-Codepunkt |
Im folgenden Beispiel wird der von einem Zeichentyp belegte Speicherplatz gedruckt.
import std.stdio;
int main() {
writeln("Length in bytes: ", char.sizeof);
return 0;
}
Wenn Sie das obige Programm kompilieren und ausführen, wird das folgende Ergebnis erzielt:
Length in bytes: 1
Der leere Typ
Der void-Typ gibt an, dass kein Wert verfügbar ist. Es wird in zwei Arten von Situationen verwendet -
Sr.Nr. | Typen & Beschreibung |
---|---|
1 | Function returns as void Es gibt verschiedene Funktionen in D, die keinen Wert zurückgeben, oder Sie können sagen, dass sie void zurückgeben. Eine Funktion ohne Rückgabewert hat den Rückgabetyp als ungültig. Zum Beispiel,void exit (int status); |
2 | Function arguments as void Es gibt verschiedene Funktionen in D, die keine Parameter akzeptieren. Eine Funktion ohne Parameter kann als ungültig akzeptiert werden. Zum Beispiel,int rand(void); |
Der Leertyp wird Ihnen zu diesem Zeitpunkt möglicherweise nicht verstanden. Lassen Sie uns fortfahren und wir werden diese Konzepte in den kommenden Kapiteln behandeln.