ENTRY 属性は、宣言される名前が、 外部入り口定数または入り口変数のいずれかであることを指定します。 さらに、エントリー・ポイントのパラメーター属性も記述します。
パラメーター記述子リストが指定されない場合には、引数属性のデフォルトと パラメーター属性を突き合わせなければなりません。 そのため、引数属性とパラメーター属性を突き合わせない場合には、 パラメーター記述子リストを指定しなければなりません。
それぞれのパラメーター記述子は、呼び出されたエントリー・ポイントの 1 つの パラメーターと対応し、(もし指定されていれば) そのパラメーターの属性が指定されます。
パラメーター記述子は、説明されているパラメーターと同じ順序で 示さなければなりません。 記述子がなければ、引数のデフォルトとパラメーターが突き合わされます。
パラメーターの記述子が不要な場合には、 記述子がないということをアスタリスクで示さなければなりません。 以下に例を示します。
|
entry(character(10),*,*,fixed dec) |
4 つの引数を示します。 |
|
entry(*) |
1 つの引数を示します。 |
|
entry( ) |
入り口名は引数を持ってはならないということを指定します。 |
|
entry |
任意の数の引数を持つことができるということを指定します。 |
|
entry(float binary,*) |
2 つの引数を示します。 |
アスタリスクが指定されている場合には、デフォルトは適用されません。 例えば、以下の宣言のデフォルトは、2 番目のパラメーターにだけしか適用されません。
dcl X entry(* optional, aligned); /* defaults applied for 2nd parm */
パラメーター記述子のエクステント (長さ、サイズ、および境界) は、 定数またはアスタリスクとして指定されなければなりません。 被制御パラメーターは、アスタリスクを持たなければなりません。
RETURNS 属性は、ENTRY 属性を暗黙指定します。 以下に例を示します。
| パラメーター記述子の例 | 記述子の宣言の例 |
|---|---|
Test: procedure (A,B,C,D,E,F);
declare A fixed decimal (5),
B float binary (21),
C pointer,
1 D,
2 P,
2 Q,
3 R fixed decimal,
1 E,
2 X,
2 Y,
3 Z,
F(4) character (10);
end Test; |
declare Test entry
(decimal fixed (5),
binary float (21),
*,
1,
2,
2,
3 decimal fixed,
*,
(4) char(10)); |
前の例では、C パラメーターおよび E 構造体パラメーターは 記述子を持ちません。