OffsetOf

Returns the offset of a field within a type.

Syntax
	KeyPgPpdefine#define OffsetOf(typename, fieldname) KeyPgCintCInt( @KeyPgCastCast( typename KeyPgPtrPtr, 0 )->
	fieldname )	

Usage
	result = OffsetOf( typename, fieldname )

Parameters
	typename
		Name of the type as defined using the KeyPgTypeType...End Type statements.
	fieldname
		Name 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.

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

Dialect Differences
	* Not available in the CompilerOptlang-lang qb dialect unless referenced with the 
	  alias __Offsetof.

Differences from QB
	* New to FreeBASIC

See also
	* KeyPgTypeType...End Type
	* KeyPgSizeofSizeOf

