<< Click to Display Table of Contents >> Navigation: ThinBASIC Core Language > BuiltIn Functions > Inspecting UDT (Types) > UDT_ElementOffset |
Description
Return the offset of an element inside an UDT (User Defined Type) variable.
Syntax
lPos = UDT_ElementOffset(UdtElement)
Returns
Number
Negative values means error, usually UDT element does not exists
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
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(Integer, VarPtr(v) + UDT_ElementOffset(v.b))
PrintL Peek(Long , VarPtr(v) + UDT_ElementOffset(v.c))
PrintL
WaitKey