The Compiler supplies the required additional attributes, as follows:
Specified |
Missing |
Supplied |
binary |
fixed | float |
fixed |
decimal |
fixed | float |
fixed |
fixed |
binary | decimal |
decimal |
float |
binary | decimal |
decimal |
static |
internal | external |
internal |
bit |
length |
length of one |
character |
length |
length of one |
area |
size |
size of 1000 |
Defaults are also supplied for the following conditions.
- STATIC is supplied if EXTERNAL is specified without a storage class and the declared name is not an entry or file constant.
- AUTOMATIC is supplied if the name is the name of a nonparameter variable that is not a member of a structure and no storage class was specified.
- The default precision is supplied if precision is not specified for arithmetic data. For information on the Open PL/I default precisions, see your Open PL/I User's Guide.
- VARIABLE is supplied if a storage class, array bounds, or member's level number is specified with FILE or ENTRY.
- EXTERNAL is supplied if FILE or ENTRY is specified and VARIABLE is neither specified nor supplied under the previous rule. In this case, the named object is a constant rather than a variable.
- UNALIGNED is supplied for bit-string data; ALIGNED for all other types of data.