プリプロセッサの変数およびデータ要素

プリプロセッサのローカル変数は自動記憶域ではなく静的記憶域のように機能するため、プリプロセッサ プロシージャを呼び出しても値が維持されます。

プリプロセッサ名の形式は、Open PL/I の他の名前と同じ規則に従います。

プリプロセッサ変数は、%DECLARE 文で FIXED、CHARACTER、または BIT のいずれかの属性で指定されます。プリプロセッサ変数に対して、これ以外の属性を宣言することはできません。

FIXED 属性で宣言されたプリプロセッサ変数には、PL/I の DECIMAL 属性が精度 (5,0) で設定されます。プリプロセッサ式の固定小数点定数は整数でなければなりません。

CHARACTER 属性で宣言されたプリプロセッサ変数には、PL/I の VARYING 属性が設定されます。この属性には、本マニュアルで別途説明しているように、長さに一定の制約があります。プリプロセッサ式の文字定数に文字列の繰り返し係数を使用することはできません。

マクロ プリプロセッサ変数の場合、マクロ割り当て文の中で算術複合演算子を使用できます。次の複合演算子がサポートされています。

+= 評価、加算して代入
-= 評価、減算して代入
*= 評価、乗算して代入
/= 評価、除算して代入
次に例を示します。
%PPVAR += 1;

プリプロセッサにビット変数はありません。ただし、ビット定数は使用できます。それらは対応する 10 進値に変換され、固定定数として扱われます。右から 17 桁までのみが使用されます。変換結果が 99999 を超える場合は 99999 になります。プリプロセッサ式のビット定数に文字列の繰り返し係数を使用することはできません。