Startseite › Datentypen › BASIC-Datentypen Hilfe zum PBXB64-Compiler

BASIC-Datentypen

Auf dieser Seite werden die PowerBASIC-kompatiblen Skalar- und String-Typen dokumentiert Unterstützt von PBXB64. Für breite Ganzzahlen (128/256/512 Bit), unbegrenzt Präzision (UNL), wissenschaftliche Typen (UNF Familie, DECIMAL128) und Containertypen finden Sie im Übersicht über Datentypen.

Kategorie: BASIC-Datentypen

Beschreibung

Auf dieser Seite werden die PowerBASIC-kompatiblen Skalar- und String-Typen dokumentiert Unterstützt von PBXB64. Für breite Ganzzahlen (128/256/512 Bit), unbegrenzt Präzision (UNL), wissenschaftliche Typen (UNF Familie, DECIMAL128) und Containertypen finden Sie im Übersicht über Datentypen.

Integrale Typen

Vorzeichenbehaftete und vorzeichenlose Ganzzahlen mit festen Breiten. Die Suffixspalte zeigt das traditionelle PB-Siegel für die Inline-Deklaration.

TypGrößeSuffixSigniertReichweiteAlias
BYTE1 Byte?unterzeichnet-128 .. 127-
WORD2 Bytes??unsigniert0 .. 65.535-
INTEGER2 Bytes%unterzeichnet-32.768 .. 32.767INT
LONG4 Bytes&unterzeichnet-2.147.483.648 .. 2.147.483.647-
DWORD4 Bytes???unsigniert0 .. 4.294.967.295-
QUAD8 Byte&&unterzeichnet-2^63 .. 2^63-1-
UINT648 Byte-unsigniert0 .. 2^64-1-
Hinweis zu INTEGER: Im klassischen PowerBASIC, INTEGER ist ein 16-Bit-Typ. PBXB64 weist 8 Byte Slot-Speicher zu INTEGER Locals, um den Win64-Stack ausgerichtet zu halten und das zu vereinfachen Backend, aber das Wertebereich bleibt 16-Bit. Benutzen LONG wenn Sie eine vollständige 32-Bit-Ganzzahl benötigen.

Gleitkommatypen

Binärer Gleitkommawert nach IEEE 754. SINGLE ist 32-Bit, DOUBLE ist 64-Bit (die Standardeinstellung für Bruchliterale) und EXTENDED ist das 80-Bit-x87-Format (10 Bytes gespeichert).

TypGrößeSuffixSignifikantExponentenbereichUngefähre Reichweite
SINGLE4 Bytes!24 Bit (~7 Ziffern)-45 .. +38+/- 3,4e38
DOUBLE8 Byte#53 Bit (~15 Ziffern)-324 .. +308+/- 1,8e308
EXTENDED10 Byte##64 Bit (~19 Ziffern)-4951 .. +4932+/- 1,2e4932
Binäre Rundung: SINGLE/DOUBLE kann nicht stellen die meisten Dezimalbrüche exakt dar (z. B. 0.1 ist periodisch im Binärformat). Für finanzielle oder exakte Dezimalarbeit verwenden Sie DECIMAL128 oder CURRENCY.

Festkommatypen

TypGrößeSuffixSkalierungSignifikanter Bereich
CURRENCY8 Byte@/ 10000 (4 dp)+/- 922.337.203.685.477,5807
CURRENCYX16 Byte?#/ 10000 (4 dp)+/- 9,9 * 10^15

CURRENCYX ist eine PBXB64-Erweiterung: ein 128-Bit-Festkommatyp Das verdoppelt die Reichweite CURRENCY unter Beibehaltung des Gleichen Skalierung mit 4 Nachkommastellen.

String-Typen

TypSuffixZeichensatzLagerungHinweise
STRING$ANSI (8-Bit)dynamischer HeapStandard-String-Typ.
BSTRING-ANSI (8-Bit)dynamischer HeapAls dynamischer BASIC-String-Typ fuer Deklarationen, UDT-Felder, Parameter, Rueckgaben, Zuweisung, Verkettung, Vergleich und LEN akzeptiert.
STRINGZ-ANSI (8-Bit)fester PufferNUL-terminiert; für die Win32-API.
ASCIIZ-ANSI (8-Bit)fester PufferAlias von STRINGZ.
WSTRING-UTF-16 (16-Bit)dynamischer HeapBreite Zeichenfolge für Unicode-APIs.
WSTRINGZ-UTF-16 (16-Bit)fester PufferNUL-terminierter breiter String.
STRING * N-ANSI (8-Bit)feste N BytesFeste Länge; auf N gekürzt.
Hinweis zu BSTRING: In PBXB64 V14.4 ist BSTRING als dynamischer BASIC-String-Kompatibilitaetstyp implementiert und durch examples/basic/test_bstring_basic.pb geprueft. Es ist noch kein eigener COM-Automation-BSTR/UTF-16-ABI-Typ; COM-BSTR-Interop bleibt Teil des groesseren Unicode/COM-Backlogs.

Andere Skalartypen

TypGrößeBeschreibung
VARIANT16 ByteMarkierte Union: int/float/string/date/null. Typisierte Extraktion über VARIANT#/$/%.
GUID16 ByteGlobal eindeutiger 128-Bit-Bezeichner.
OBJECT8 ByteCOM-Objektschnittstellenzeiger.
ANY-Untypisierter Zeiger; akzeptiert jede Variable als Referenz.
BYTE PTR / LONG PTR ...8 ByteTypisierter Zeiger (@ Siegel).

Zusammengesetzte Typen

Standardinitialisierung

Typ- und Speicherprüfung

Typ- und Variablenseiten sollen Breite, Vorzeichen, Initialisierung, Gültigkeitsbereich, Suffixregeln und x64-Layout dokumentieren. Beispiele sollen gespeicherten Wert, ausgelesenen Wert und Konvertierungs- oder Überlaufverhalten belegen.

Deklarationsregeln

Nennen Sie, ob Deklarationen #DIM ALL, AS-Klauseln, Suffixe oder ausdrückliche Sichtbarkeit benötigen. Trennen Sie lokalen, statischen, globalen und thread-lokalen Speicher.

Migrationshinweise

Prüfen Sie Pointer-, Handle- und LONG-Annahmen beim Wechsel von 32-Bit-PB-Code zu PBXB64.

Umfangshinweise

Wenn eine Seite mehrere verwandte Formen gruppiert, sollte sie sagen, welche Form die Speicherbreite festlegt, welche nur die Deklarationssyntax ändert und welche nur historischen Charakter hat. Eine kleine Zuordnung von Familienbegriff zu den konkreten Typseiten macht die Seite beim Portieren deutlich nützlicher.

Siehe auch