OFFSETOF

FreeBASIC-Referenz » Alphabetische Befehlsreferenz » O » OFFSETOF

Syntax: OFFSETOF (TypeName, RecordName)
Typ: Funktion
Kategorie: Klassen

OFFSETOF gibt den Offset (Abstand in Byte zur Adresse des UDTs) eines Records innerhalb eines UDTs relativ zu seinem Anfang zurück.

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 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, Verschiedenes