The type descriptor for ``simple'' scalar quantities has the following format. Here ``simple'' means integers, floating point values (real and complex), strings, and pointers.
Type | Name | Description | ||||||||
LONG | TYPECODE | IDL variable type code | ||||||||
LONG | VARFLAGS | Bit flags for a type descriptor, OR'd as follows:
|
NOTES: All of the type descriptor formats begin physically with a TYPECODE and VARFLAGS field. In the case of scalars, those are the only two fields in the descriptor. All scalars have a VARFLAGS value of zero or one, indicating either a system variable or not, but not an array or structure.
The IDL TYPECODE is the data type that is used throughout IDL, and by the SIZE function, to describe the basic type of a quantity. The values are contained in the following table:
0 | Undefined (not allowed) |
1 | Byte |
2 | 16-bit Integer |
3 | 32-bit Long Integer |
4 | 32-bit Floating Point Number |
5 | 64-bit Floating Point Number |
6 | Complex Floating Point Number (32-bits each) |
7 | String |
8 | Structure (never a scalar) |
9 | Complex Floating Point Number (64-bits each) |
10 | Heap Pointer |
11 | Object Reference (not supported by CMSVLIB) |
12 | 16-bit Unsigned Integer |
13 | 32-bit Unsigned Integer |
14 | 64-bit Integer |
15 | 64-bit Unsigned Integer |
The next sections describe the enhancements that are in place for arrays and structures.