Help Center
Help Center›FreeBASIC

OffsetOfkeyword

Returns the offset of a field within a type.

Miscellaneous Keywordskeyworddocumented

Syntax

#define OffsetOf(typename, fieldname) CInt( @Cast( typename Ptr, 0 )->fieldname )

Parameters

NameDescription
typenameName of the type as defined using the Type...End Type statements.
fieldnameName of the field as defined within the type (or within the base types for a derived type).

Description


For a non-derived type, OffsetOf will return the location fieldname as offset in bytes from the beginning of typename.

For a derived type, OffsetOf will return the location fieldname as offset in bytes from the beginning of its highest base type.
Note: if a member of the base type is overridden by a new member, the offset of the old member cannot be accessed from the derived type.

Remarks

Usage


result = OffsetOf( typename, fieldname )

Dialect Differences


  • Not available in the -lang qb dialect unless referenced with the alias __Offsetof.

Differences from QB


  • New to FreeBASIC

See also


Example


Type MyType

  x As Single

  y As Single

  Union

    b As Byte

    i As Integer

  End Union

End Type



Print "OffsetOf x = "; OffsetOf(MyType, x)

Print "OffsetOf y = "; OffsetOf(MyType, y)

Print "OffsetOf b = "; OffsetOf(MyType, b)

Print "OffsetOf i = "; OffsetOf(MyType, i)


Output
OffsetOf x =  0
OffsetOf y =  4
OffsetOf b =  8
OffsetOf i =  8

Reference

  • Documented in KeyPgOffsetof.html