BlitzBasic mit AmiBlitz3 - ein Tutorial für Amiga-Programmierer www.mbergmann-sh.de

Anhang A – Primitive Datentypen

NameExtensionGrößeMinimumMaximumAnmerkungen
Byte.b1 byte (8 bits)-128+127nur Ganzzahlen
Word.w2 bytes (16 bits)-32768+32767nur Ganzzahlen
Long / Long Word.l4 bytes (32 bits)-231+231nur Ganzzahlen
Quick.q4 bytes (32 bits)-32768+32767Quick-float mit festem Dezimalpunkt, +/-15 bit.16 bit Format (1 in 65536 Präzision nach dem Dezimalpunkt). Schneller als die Emulation der Float-Typen in Software, aber langsamer als Integer und langsamer als Float-Typen mit einer Hardware-FPU.
Float.f4 bytes (32 bits)-9*1018+9*1018-1Einfachpräzise Fließkommazahl, wie sie von den Standard-Fließkommabibliotheken des Amiga unterstützt wird, +/-23bits+/-7 bits Format. Langsam in Software zu emulieren, aber sehr schnell, wenn Hardware-FPU verwendet wird. Langsamer als Ganzzahlen.
Double Float.d8 bytes (64 bits)-Riesig+RiesigDoppeltgenaue Gleitkommazahl, +/-52bits+/-10 bits Format. Keine Software-Emulation, daher muss eine Hardware-FPU verwendet werden. Nicht unterstützt in Blitz Basic 2.1 und früher. Langsamer als Single-Precision Float-Typen.
String.s oder $Variable, bei Bedarf dynamisch vergrößerbarNull (\0)String-PuffergrößeZeichenkette aus 8-Bit-Zeichen im Speicher, die automatisch durch ein Nullzeichen (\0) abgeschlossen wird. Die Größe muss normalerweise nicht deklariert werden. Die $-Erweiterung ist wie in anderen BASIC-Dialekten enthalten und muss, wenn sie verwendet wird, jedes Mal angegeben werden, wenn die Variable referenziert wird.

Hinweis: Alle numerischen Typen sind vorzeichenbehaftet.

Datentypen deklarieren

Default Types

Standardmäßig werden alle in Blitz verwendeten Variablen, die nicht explizit als ein bestimmter Typ deklariert sind, als Quick-Typen erstellt. Der Standardtyp für nicht explizit definierte Variablen kann mit der DEFTYPE-Anweisung festgelegt werden:

DEFTYPE .b

 

Explizite Deklaration

Um bestimmte Variablen als expliziten Typ zu deklarieren, kann die DEFTYPE-Anweisung verwendet werden, indem neben dem gewünschten Typ auch die Namen einer oder mehrerer Variablen angegeben werden. Zum Beispiel:

DEFTYPE .b status
DEFTYPE .l result, attribute

 

Inline Deklaration

Mit Blitz kannst du auch den Typ einer Variablen deklarieren, wenn sie zum Beispiel zum ersten Mal verwendet wird:

result.w = 25000

Nach dieser Zeile ist result als Worttyp definiert und die Erweiterung .w ist nicht mehr erforderlich.

Überlauf

Wenn eine Variable über ihren angegebenen Bereich hinausgeht, wird normalerweise kein Fehler erzeugt. Stattdessen wird der Wert auf das andere Ende der Skala umgeschlagen. Dies kann dazu führen, dass einige sehr schwer zu findende Fehler in deinen Code eingeschleust werden! Zum Beispiel:

MyNum.b = 120
MyNum = MyNum + 10
NPrint MyNum

Man könnte erwarten, dass dieser Code die Zahl 130 ausgibt, aber stattdessen wird er die Zahl -126 ausgeben, denn sobald er über +127 hinausgeht, umbricht und die verbleibenden 3 ab -128 gezählt werden. Der Laufzeit-Debugger kann so eingestellt werden, dass er in solchen Situationen während der Fehlersuche eine Fehlermeldung ausgibt, was dabei helfen kann, diese Probleme während der Entwicklung zu erkennen.  Bedenke aber, dass dies in bestimmten Fällen auch zu Fehlalarmen führen kann, wenn beispielsweise vorzeichenlose Werte von Betriebssystemaufrufen verwendet werden. Überläufe führen nicht von selbst zu einem Absturz, aber der daraus resultierende falsche Wert kann zu unerwartetem Verhalten oder sogar zu Abstürzen führen, wenn beispielsweise eine falsche Speicheradresse berechnet wird. Es ist also wichtig, immer einen geeigneten Typ für die Informationen zu verwenden, die in einer Variablen enthalten sein sollen!


[Zurück zur Übersicht]