Note: | This section pertains only to storage for variables. Named constants and their subobjects have a storage class of literal. |
All variables are ultimately represented by one of five storage classes:
None of the following storage classes own their own storage, but are associated with a fundamental storage class at run time.
For details on passing methods, see %VAL and %REF.
Variable names are assigned storage classes in three ways:
A variable that does not satisfy any of the above, but that is equivalenced with a variable that has an explicit storage class, inherits that explicit storage class.
A variable that does not satisfy any of the above, and is not equivalenced with a variable that has an explicit storage class, has an explicit storage class of static if a SAVE statement with no list exists in the scoping unit.
If a variable does not have an explicit storage class, it can be assigned an implicit storage class as follows:
In a given scoping unit, if a letter, dollar sign or underscore has not been specified in an IMPLICIT STATIC or IMPLICIT AUTOMATIC statement, the implicit storage class is the same as that in the host.
Variables declared in the specification part of a module are associated with the static storage class.
A variable that does not satisfy any of the above but that is equivalenced with a variable that has an implicit storage class, inherits that implicit storage class.
All other variables have the default storage class:
See "-qsave Option" in the User's Guide for details on the default settings with regard to the invocation commands.