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.
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.
Vorzeichenbehaftete und vorzeichenlose Ganzzahlen mit festen Breiten. Die Suffixspalte zeigt das traditionelle PB-Siegel für die Inline-Deklaration.
| Typ | Größe | Suffix | Signiert | Reichweite | Alias |
|---|---|---|---|---|---|
BYTE | 1 Byte | ? | unterzeichnet | -128 .. 127 | - |
WORD | 2 Bytes | ?? | unsigniert | 0 .. 65.535 | - |
INTEGER | 2 Bytes | % | unterzeichnet | -32.768 .. 32.767 | INT |
LONG | 4 Bytes | & | unterzeichnet | -2.147.483.648 .. 2.147.483.647 | - |
DWORD | 4 Bytes | ??? | unsigniert | 0 .. 4.294.967.295 | - |
QUAD | 8 Byte | && | unterzeichnet | -2^63 .. 2^63-1 | - |
UINT64 | 8 Byte | - | unsigniert | 0 .. 2^64-1 | - |
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. 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).
| Typ | Größe | Suffix | Signifikant | Exponentenbereich | Ungefähre Reichweite |
|---|---|---|---|---|---|
SINGLE | 4 Bytes | ! | 24 Bit (~7 Ziffern) | -45 .. +38 | +/- 3,4e38 |
DOUBLE | 8 Byte | # | 53 Bit (~15 Ziffern) | -324 .. +308 | +/- 1,8e308 |
EXTENDED | 10 Byte | ## | 64 Bit (~19 Ziffern) | -4951 .. +4932 | +/- 1,2e4932 |
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. | Typ | Größe | Suffix | Skalierung | Signifikanter Bereich |
|---|---|---|---|---|
CURRENCY | 8 Byte | @ | / 10000 (4 dp) | +/- 922.337.203.685.477,5807 |
CURRENCYX | 16 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.
| Typ | Suffix | Zeichensatz | Lagerung | Hinweise |
|---|---|---|---|---|
STRING | $ | ANSI (8-Bit) | dynamischer Heap | Standard-String-Typ. |
BSTRING | - | ANSI (8-Bit) | dynamischer Heap | Als dynamischer BASIC-String-Typ fuer Deklarationen, UDT-Felder, Parameter, Rueckgaben, Zuweisung, Verkettung, Vergleich und LEN akzeptiert. |
STRINGZ | - | ANSI (8-Bit) | fester Puffer | NUL-terminiert; für die Win32-API. |
ASCIIZ | - | ANSI (8-Bit) | fester Puffer | Alias von STRINGZ. |
WSTRING | - | UTF-16 (16-Bit) | dynamischer Heap | Breite Zeichenfolge für Unicode-APIs. |
WSTRINGZ | - | UTF-16 (16-Bit) | fester Puffer | NUL-terminierter breiter String. |
STRING * N | - | ANSI (8-Bit) | feste N Bytes | Feste Länge; auf N gekürzt. |
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. | Typ | Größe | Beschreibung |
|---|---|---|
VARIANT | 16 Byte | Markierte Union: int/float/string/date/null. Typisierte Extraktion über VARIANT#/$/%. |
GUID | 16 Byte | Global eindeutiger 128-Bit-Bezeichner. |
OBJECT | 8 Byte | COM-Objektschnittstellenzeiger. |
ANY | - | Untypisierter Zeiger; akzeptiert jede Variable als Referenz. |
BYTE PTR / LONG PTR ... | 8 Byte | Typisierter Zeiger (@ Siegel). |
TYPE): Aufzeichnung benannter Felder, heterogene Typen, unterstützt Verschachtelung.UNION: Felder teilen sich den Speicher.DIM a(1 TO 10) AS LONG (fest) oder REDIM (dynamisch, optional PRESERVE).0."" (leer).VARIANT wird initialisiert, um leer zu sein..New bei der Einreise und .Final beim Verlassen des Bereichs.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.
Nennen Sie, ob Deklarationen #DIM ALL, AS-Klauseln, Suffixe oder ausdrückliche Sichtbarkeit benötigen. Trennen Sie lokalen, statischen, globalen und thread-lokalen Speicher.
Prüfen Sie Pointer-, Handle- und LONG-Annahmen beim Wechsel von 32-Bit-PB-Code zu PBXB64.
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.