%PADDR (プロシージャー・アドレスの検索)

%PADDR(string|prototype)

%PADDR はプロシージャー・ポインター・タイプの値を戻します。 この値は、引数として指定された入り口点のアドレスです。

%PADDR はプロシージャー・ポインター・タイプの項目とだけ比較することが でき、プロシージャー・ポインター・タイプの項目にだけ割り当てることができ ます。

%PADDR に対するパラメーターは、文字定数またはプロトタイプ名でなければなりません。

文字定数は、文字リテラルまたは 16 進数リテラル、あるいは文字リテラル または 16 進数リテラルを表す定数名でなければなりません。 文字定数が使用される場合、これは名前によって入り口点を示しています。

プロトタイプは、結合呼び出し用のプロトタイプでなければなりません。EXTPGM キーワードは使用できません。プロトタイプによって示される入り口点は、プロトタイプの EXTPROC キーワードに指定されているプロシージャーになります。EXTPROC キーワードが指定されていない場合は、入り口点はプロトタイプ名 (英大文字) と同じになります。

図 213. 入り口点のある %PADDR の例
DName+++++++++++ETDsFrom+++To/L+++IDc.Keywords+++++++++++++++++++++++++++
D
D PROC            S               *   PROCPTR
D                                     INZ (%PADDR ('FIRSTPROG'))
D PROC1           S               *   PROCPTR
CL0N01Factor1+++++++Opcode(E)+Factor2+++++++Result++++++++Len++D+HiLoEq..
CL0N01Factor1+++++++Opcode(E)+Extended-factor2+++++++++++++++++++++++++++
 *
 *  The following statement calls procedure 'FIRSTPROG'.
 *
C                   CALLB     PROC
 *-----------------------------------------------------------------
 * The following statements call procedure 'NextProg'.
 * This a C procedure and is in mixed case.  Note that
 * the procedure name is case sensitive.
 *
C                   EVAL      PROC1 = %PADDR ('NextProg')
C                   CALLB     PROC1