言語間呼び出し

別の言語で作成されたプログラムまたはプロシージャーでデータを受け渡しする時には、 その別の言語が ILE RPG と同じパラメーターの受け渡し方法および同じデータ・タイプをサポートしているかどうかを知ることが重要です。RPG パラメーター受け渡し方式 は、ILE RPG が許可する異なるパラメーターの受け渡し方法を示し、 また適用できる場合は、ILE 言語以外の言語でコーディングする方法を示します。この表には、比較のために OPM RPG/400® 用コンパイラーも含まれています。

RPG パラメーター受け渡し方式

表 1. 参照による受け渡し
呼び出しメカニズム
ILE RPG – プロトタイプ
 D  proc      PR
 D    parm            1A
 C        CALLP  proc(fld)
ILE C
void proc(char *parm);
proc(&fld);
ILE COBOL
CALL PROCEDURE "PROC" USING BY REFERENCE PARM
RPG – 非プロトタイプ
 C        CALL   'PROC'
 C        PARM                  FLD
ILE CL
 CALL PROC (&FLD)
表 2. 値による受け渡し
呼び出しメカニズム
ILE RPG – プロトタイプ
 D  proc      PR
 D    parm            1A   VALUE
 C        CALLP  proc('a')
ILE C
void proc(char parm);
proc('a');
ILE COBOL
CALL PROCEDURE "PROC" USING BY VALUE PARM
RPG – 非プロトタイプ N/A
ILE CL

N/A

表 3. 読み取り専用参照による受け渡し
呼び出しメカニズム
ILE RPG – プロトタイプ
 D  proc      PR
 D    parm            1A     CONST
 C        CALLP  proc(fld)
ILE C
void proc(const char *parm);
proc(&fld);
ILE COBOL N/A1
RPG – 非プロトタイプ N/A
ILE CL

N/A

注:
  1. 読み取り専用参照による受け渡しを COBOL の内容による受け渡しと混同しな いでください。RPG では、Fld1 を内容によって受け渡しするためには、次のとおりコーディングし ます。
         C                   PARM      Fld1          TEMP

    Fld1 は変更できないようになっていますが、TEMP は保護されていません。 パラメーターが 変更されない保証はありません。

異なる HLL によりサポートされるデータ・タイプの情報については、 適切な言語解説書を参照してください。