プロシージャーのパラメータ定義で CONST という定義をする必要がある場合がある。
一体、CONSTとはどのような意味を持つのだろうか?
_
[例] QMHSNDPM のプロトタイプの定義
0053.00 *( QMHSNDPM : プログラム・メッセージの送信 ) 0054.00 D QMHSNDPM PR ExtPgm('QMHSNDPM') 0055.00 D MSGID 7A CONST 0056.00 D MSGFILE 20A CONST 0057.00 D MSGDATA 6000A CONST OPTIONS(*VARSIZE) 0058.00 D MSGDATALEN 10I 0 CONST 0059.00 D MSGTYPE 10A CONST 0060.00 D CALLSTACKE 10A CONST 0061.00 D CALLSTACKC 10I 0 CONST 0062.00 D RTNMSGKEY 4A 0063.00 D APIERR LIKEDS(APIERR) 0064.00 D OPTIONS(*VARSIZE)
[解説]
API: QMHSNDPM は SNDPGMMSG の機能を実行するAPIである。
ILE-RPGの中からもこのAPIを呼出してプログラム・メッセージを
送信することができる。
上記では各パラメータに CONST という機能を定義している。
このCONST というのは
変更できないパラメータである
ことを示している。
呼出し側のAPIでも CONSTが定義されている場合
呼び出す側でも CONST を定義しないとコンパイル・エラーに
なるからである。
APIを呼び出すときにプロトタイプで不明なエラーが出たときは
CONST の定義が漏れている場合が多い。
このことを意識して CONSTを定義してやると
コンパイル・エラーは解決される。
_