Numeric Leaves

The following leaves are used in symbols and types where actual numeric values need to be specified. When the symbol or type processor knows that a numeric leaf is present, the next two bytes of the record are examined. If the value of these two bytes is less than LF_NUMERIC (0x8000), then the two bytes contain the actual value. If the value is greater than or equal to LF_NUMERIC (0x8000), then the numeric data follows the two-byte leaf index and is contained in the number of bytes specified by the leaf index. Note that there is not a need for a LF_UCHAR numeric field since the value of the eight-bit unsigned character is less than 0x8000. It is the responsibility of routines reading numeric fields to handle the potential non alignment of the data fields.

(0x8000) Signed Char

2

1

LF_CHAR

char


char 8-bit value

(0x8001) Signed Short

2

2

LF_SHORT

short


short 16-bit signed value

(0x8002) Unsigned Short

2

2

LF_USHORT

ushort


ushort 16-bit unsigned value

(0x8003) Signed Long

2

4

LF_LONG

long


long 32-bit signed value

(0x8004) Unsigned Long

2

4

LF_ULONG

ulong


ulong 32-bit unsigned value

(0x8005) 32 Bit Float

2

4

LF_REAL32

real32


real32 32-bit floating-point value

(0x8006) 64 bit Float

2

8

LF_REAL64

real64


real64 64-bit floating-point value

(0x8007) 80 Bit Float

2

10

LF_REAL80

real80


real80 80-bit floating-point value

(0x8008) 128 Bit Float

2

16

LF_REAL128

real128


real128 128-bit floating-point value

(0x8009) Signed Quadword

2

8

LF_QUADWORD

quadword


quadword 64-bit signed value

(0x800a) Unsigned Quadword

2

8

LF_UQUADWORD

uquadword


uquadword 64-bit unsigned value

(0x800b) 48 Bit Float

2

6

LF_REAL48

real48


real48 48-bit floating-point value

(0x800c) 32 Bit Complex

2

4

4

LF_COMPLEX32

real

imaginary


real Real part of complex number

imaginary Imaginary part of complex number

(0x800d) 64 Bit Complex

2

8

8

LF_COMPLEX64

real

imaginary


real Real part of complex number

imaginary Imaginary part of complex number

(0x800e) 80 Bit Complex

2

10

10

LF_COMPLEX80

real

imaginary


real Real part of complex number

imaginary Imaginary part of complex number

(0x800f) 128 Bit Complex

2

16

16

LF_COMPLEX128

real

imaginary


real Real part of complex number

imaginary Imaginary part of complex number

(0x8010) Variable Length String

2

2

*

LF_VARSTRING

length

string


length Length of following string

string Variable length string