In the previous example we saw
CHAR used as the destination types of pointers, and these are the 16- and 8-bit equivalents (respectively) of the
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
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
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.
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.