Syntax: CPTR (Datentyp PTR, 32bit_Ausdruck)
Typ: Funktion
Kategorie: Typumwandlung
CPTR verwandelt einen beliebigen 32bit-Ausdruck in einen Pointer eines beliebigen Typs.
- 'Datentyp' ist ein beliebiger Datentyp, der jedoch ein Pointer sein muss. Erlaubt sind auch ZSTRING- und WSTRING-Pointer.
- '32bit_Ausdruck' ist entweder ein Pointer, eine INTEGER- oder eine UINTEGER-Variable.
- Der Rückgabewert ist ein Pointer auf eine Speicherstelle vom Typ 'Datentyp'.
Beispiel:
DIM i AS INTEGER
DIM ip AS INTEGER PTR, z AS ZSTRING PTR
i = &h0080
ip = @i
PRINT *CPTR(BYTE PTR, ip), *ip
i = 33
ip = @i
z = CPTR(ZSTRING PTR, ip)
PRINT i, *z
SLEEP
Ausgabe:
-128 128
33 !
'!' ist ASCII-Char 33 (siehe ASC, CHR).
Hinweis: Momentan gibt der Compiler keinen Fehler aus, wenn als 'Datentyp PTR' ein normaler Datentyp und kein Pointer angegeben wird. Dies kann zu Fehlern führen.
Unterschiede zu QB: neu in FreeBASIC
Unterschiede in den Dialektformen:
In der Dialektform -lang qb steht CPTR nicht zur Verfügung und kann nur über __CPTR aufgerufen werden.
Siehe auch:
CAST, Datentypen umwandeln