A preprocessor variable is specified in a %DECLARE statement with either the FIXED or the CHARACTER attribute. No other attributes can be declared for a preprocessor variable, and attributes must not be repeated. (Other attributes are supplied by the preprocessor, however.) All variables have storage equivalent to the STATIC storage class.
While it is not required that you specify the FIXED or CHARACTER attribute for each variable in a %DECLARE, it is always the best practice to do so.
Preprocessor data types are coded arithmetic and string data, and are either:
If the FIXED(BINARY) macro preprocessor option is in effect, then it is given the attributes BINARY(31,0).
In either case, it is given an initial value of 0.
Fractional values are not supported.
It is given an initial value of ''.
The only numeric constants supported by the preprocessor are optionally signed, unscaled integers (such as 17 or -29).
The only string constants supported by the preprocessor are character and bit strings, either of which may be specified using hexadecimal notation (i.e. as X or BX strings).
String repetition factors are not allowed. However, the COPY built-in function may be used to replicate a constant.