Note that the host application may add types specific to that application, refer to the application's manual for more information.
void
is not really a data type, more like lack of data type. It can only be used to tell the compiler that a function doesn't return any data.
bool
is a boolean type with only two
possible values: true
or
false
. The keywords
true
and
false
are constants of type
bool
that can be used as such in
expressions.
int
holds integer values in the range -2147483648 to 2147483647.
int8
holds integer values in the range -128 to 128.
int16
holds integer values in the range -32768 to 32767.
As the scripting engine has been optimized for 32 bit datatypes, using the smaller variants is only recommended for accessing application specified variables. For local variables it is better to use the 32 bit variant.
int32
is an alias for int
.
uint
holds integer values in the range 0 to 4294967295.
uint8
holds integer values in the range 0 to 255.
uint16
holds integer values in the range 0 to 65535.
As the scripting engine has been optimized for 32 bit datatypes, using the smaller variants is only recommended for accessing application specified variables. For local variables it is better to use the 32 bit variant.
uint32
is an alias for uint
.
float
holds real (or floating point) values in the range -/+3.402823466e38.
The smallest possible positive number that a float can destinguish is: 1.175494351e-38. The maximum number of decimal digits that can be safely used is 6, i.e. if more digits are used they are prone to rounding errors during operations.
Curiousity: Floats may also have the additional values of positive and negative 0 or infinite, and NaN (Not-a-Number). NaN is represented by the 32 bit data word 0x7fc00000.
double
holds real (or floating point) values in the range -/+1.7976931348623158e+308.
The smallest possible positive number that a double can destinguish is: 2.2250738585072014e-308. The maximum number of decimal digits that can be safely used is 15, i.e. if more digits are used they are prone to rounding errors during operations.
Curiousity: Doubles may also have the additional values of positive and negative 0 or infinite, and NaN (Not-a-Number).
bits
is a data type that allows manipulation of
individual bits. The data type holds 32 bits in a word. It can be assigned by a
bits
constant that is written as a hexadecimal number, e.g.
0xDEADC0DE.
bits8
holds 8 bits, and bits16
holds 16 bits.
bits32
is an alias for bits
.
Both float
and
int
can be converted to and from
bits
.
The bits in the data type can be manipulated through the many bitwise operators available:
& | ^ ~ << >> >>>
As the scripting engine has been optimized for 32 bit datatypes, using the smaller variants is only recommended for accessing application specified variables. For local variables it is better to use the 32 bit variant.
When specifying a function's parameter data type the &
modifier
can be used to specify that the argument should be sent by reference instead of
by value. This can be used to allow a function to return more than one value,
but is especially important when sending strings as they would be copied if
sent by value.
Another modifier is the *
. This one is used to tell that the type
is a pointer to a memory location, instead of the actual value. More than one
*
can be combined to form a pointer to a pointer.
When declaring a variable with a type modifier, the type modifier only affects the variable directly after the modifier. Example:
int a, *b, c;
a
and c
are normal integers, while b
is a pointer to an integer.
It is also possible to make arrays of types like this:
TYPE[] a; TYPE[] b(LENGTH);
a is an empty array of TYPE. b is an array with the length of LENGTH. Each element in the array is accessed with the indexing operator. The indices are zero based, i.e the range of valid indices are 0 to length - 1.
a[0] = EXPRESSION;
Strings are a special type of data that can be used only if the application registers support for them. They are a special data type that holds an array of bytes. The only limit to how large this array can be is the memory available on the computer.
Constant strings are written between double quotation marks ("
).
Inside the constant strings some escape sequences can be used to write exact
byte values that might not be possible to write in your normal editor. If more
than one string constants are written in sequence with only whitespace or
comments between them the compiler will concatenate them into one constant.
sequence | value | description |
\0 |
0 | null character |
\\ |
92 | back-slash |
\" |
34 | double quotation mark |
\n |
10 | new line feed |
\r |
13 | carriage return |
\xFF |
0xFF | FF should be exchanged for the hexadecimal number representing the byte value wanted |