In the previous example we saw INT
and CHAR
used as the destination types of pointers, and these are the 16- and 8-bit equivalents (respectively) of the LONG
type.
However, unlike LONG
these types cannot be used directly to declare global or local variables, or procedure parameters.
They can only be used in constructing types (for instance with PTR TO
).
The following declarations are therefore illegal, and it might be nice to try compiling a little program with such a declaration, just to see the error message the E compiler gives.
/* This program fragment contains illegal declarations */ DEF c:CHAR, i:INT /* This program fragment contains illegal declarations */ PROC fred(a:INT, b:CHAR) DEF x:INT statements ENDPROC
This is not much of a limitation because you can store INT
or CHAR
values in LONG
variables if you really need to.
However, it does mean there's a nice, simple rule: every direct value in E is a 32-bit quantity, either a LONG
or a pointer.
In fact, LONG
is actually short-hand for PTR TO CHAR
, so you can use LONG
values like they were actually PTR TO CHAR
values.
Go to the Next or Previous section, the Detailed Contents, or the Amiga E Encyclopedia.