Syntax: OFFSETOF( TypeName, RecordName )
Typ: Funktion
Kategorie: Speicherverwaltung
OFFSETOF gibt den Offset (Abstand in Byte zur Adresse des TYPEs) eines Records innerhalb eines TYPEs relativ zu seinem Anfang zurück.
- 'TypeName' ist der Name des Typs, auf den sich der Rückgabewert beziehen soll.
- 'RecordName' ist der Name des Records, dessen Offset zurückgegeben werden soll.
Beispiel:
TYPE MyType
x AS SINGLE
y AS SINGLE
UNION
b AS BYTE
i AS INTEGER
END UNION
END TYPE
PRINT "Offset von x = "; OFFSETOF(MyType, x)
PRINT "Offset von y = "; OFFSETOF(MyType, y)
PRINT "Offset von b = "; OFFSETOF(MyType, b)
PRINT "Offset von i = "; OFFSETOF(MyType, i)
Ausgabe:
Offset von x = 0
Offset von y = 4
Offset von b = 8
Offset von i = 8
Interne Darstellung:
#Define OFFSETOF(type_,field_) CInt( @Cast( type_ ptr, 0 )->field_ )
Unterschiede zu QB: Neu in FreeBASIC
Unterschiede zu früheren Versionen von FreeBASIC:
Die Version __OFFSETOF in der Dialektform -lang qb existiert erst seit FreeBASIC v0.24.
Unterschiede unter den FB-Dialektformen:
In der Dialektform -lang qb steht OFFSETOF nicht zur Verfügung und kann nur über __OFFSETOF aufgerufen werden.
Siehe auch:
TYPE, SIZEOF, VARPTR