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.