Navigation:  ThinBASIC Modules > Core (thinBasic Core Engine) > UDT Functions >

UDT_ElementOffset

Previous pageReturn to chapter overviewNext page

 

Description

 

Return the offset of an element inside an UDT (User Defined Type) variable.

 

Syntax

 

lPos = UDT_ElementOffset(UdtElement)

 

Returns

 

Number

 

Parameters

 

Name

Type

Optional

Meaning

UdtElement

UDT structure

No

An UDT element name

 

Remarks

 

First element in an UDT is at Offset 0 (zero)

 

Restrictions

 

See also

 

UDT_ElementByte,

 

Examples

 

Uses "Console"

 

Type tUDT

  a As Byte

  b As Integer 

  c As Long 

End Type                   

 

Dim v As tUDT

 

v.a = 1

v.b = 2

v.c = 3

     

PrintL UDT_ElementOffset(v.a), "(expected 0, as it is in the root)"

PrintL UDT_ElementOffset(v.b), "(expected 1, because 0 + SizeOf(Byte) = 1)"

PrintL UDT_ElementOffset(v.c), "(expected 3, because 0 + SizeOf(Byte) + SizeOf(Integer) = 3)"

PrintL

 

PrintL "The following should print 1, 2, 3"

PrintL Peek(Byte   , VarPtr(v) + UDT_ElementOffset(v.a))

PrintL Peek(IntegerVarPtr(v) + UDT_ElementOffset(v.b))

PrintL Peek(Long   , VarPtr(v) + UDT_ElementOffset(v.c))

PrintL

 

WaitKey