Datentypen, Variablen und Konstanten
Nach oben zu Datentypen, Variablen und Konstanten - Index
Dieses Thema gibt einen Überblick über die Datentypen von Delphi.
Allgemeines zu Typen
Ein Typ ist im Wesentlichen ein Name für eine bestimmte Art von Daten. Wenn Sie eine Variable deklarieren, müssen Sie ihren Typ festlegen. Der Typ gibt an, welche Werte die Variable aufnehmen kann und welche Operationen mit ihr ausgeführt werden können. Alle Ausdrücke und Funktionen geben Daten eines bestimmten Typs zurück. Den meisten Funktionen und Prozeduren müssen Parameter eines bestimmten Typs übergeben werden.
Delphi ist eine streng typisierte Sprache. Sie unterscheidet eine Vielzahl unterschiedlicher Datentypen, die nicht immer durch andere Typen ersetzbar sind. Diese Einschränkung ist normalerweise von Vorteil, da sie dem Compiler eine "intelligente" Datenbehandlung und eine gründliche Überprüfung des Quelltextes erlaubt, wodurch sich die Gefahr schwer diagnostizierbarer Laufzeitfehler verringert. Wenn Sie in bestimmten Fällen mehr Flexibilität benötigen, lässt sich diese strenge Typisierung mithilfe besonderer Techniken umgehen. Dazu gehören die Typumwandlung, Zeiger, Varianten, variante Teile in Record-Typen und die absolute Adressierung von Variablen.
Die Datentypen von Delphi können verschiedenen Kategorien zugeordnet werden.
- Einige Typen sind vordefiniert (oder integriert). Der Compiler erkennt diese Typen automatisch, so dass für sie keine Deklaration erforderlich ist. Die meisten der in dieser Sprachreferenz dokumentierten Typen sind vordefiniert. Andere Typen werden über eine Deklaration erzeugt. Dazu gehören benutzerdefinierte und in den Produktbibliotheken definierte Typen.
- Typen sind entweder fundamental oder allgemein. Der Wertebereich und das Format fundamentaler Typen ist in allen Implementierungen von Delphi identisch, unabhängig von der zugrunde liegenden CPU und dem Betriebssystem. Der Wertebereich und das Format eines allgemeinen Typs hingegen ist plattformspezifisch und von Implementierung zu Implementierung verschieden. Die meisten vordefinierten Typen sind fundamentale Typen, einige der Integer-, Zeichen-, String- und Zeigertypen sind jedoch allgemein. Generell verdienen die allgemeinen Typen den Vorzug, da sie eine optimale Ausführungsgeschwindigkeit und Portabilität gewährleisten. Wenn sich das Speicherformat eines allgemeinen Typs jedoch in einer neuen Implementierung ändert, können Kompatibilitätsprobleme (beispielsweise beim Streamen von Daten in eine Datei als reine Binärdaten ohne Typ- und Versionsinformationen) auftreten.
- Typen lassen sich in einfache Typen, String-Typen, strukturierte Typen, Zeiger-Typen, prozedurale Typen oder variante Typen einteilen. Auch Typbezeichner selbst gehören zu einem speziellen 'Typ', da sie als Parameter an bestimmte Funktionen (z. B. High, Low und SizeOf) übergeben werden können.
- Typen können auch parametrisiert bzw. generisch sein. Typen können in dem Sinne generisch sein, als die Basis einer Struktur oder einen Prozedur sind, die mit anderen, später festzulegenden Typen zusammenarbeiten. Nähere Informationen über generische oder parametrisierte Typen finden Sie unter Generics - Index.
Die folgende Aufstellung zeigt die Struktur der Datentypen in Delphi.
Einfache Typen Ordinaltypen Integer-Typen Zeichentypen Boolesche Typen Aufzählungstypen Teilbereichstypen Reelle Typen String-Typen Strukturierte Typen Mengentypen Array-Typen Record-Typen Dateitypen Klassentypen Klassenreferenztypen Interface-Typen Zeiger-Typen Prozedurale Typen Variante Typen Typbezeichner
Die Standardfunktion SizeOf kann alle Variablen und Typbezeichner verarbeiten. Sie liefert einen Integer-Wert zurück, der angibt, wie viele Bytes zum Speichern von Daten eines bestimmten Typs erforderlich sind. Beispielsweise liefert SizeOf(Longint) den Wert 4, weil eine Longint-Variable im Speicher vier Byte belegt.
Typdeklarationen werden in den folgenden Themen erläutert. Allgemeine Informationen zu Typdeklarationen finden Sie unter Typdeklaration.