注:リトルエンディアンの PowerLinux プラットフォームでは次の手順を実施する必要がありますが、これは他のプラットフォームでも有用なプログラミング方法です。本トピックの COBOL エントリ ポイントへの参照には、PROCEDURE DIVISION ヘッダーおよび ENTRY 文の両方が含まれます。
cobcall() または cobfunc() を使用するのではなく、C から直接 COBOL エントリ ポイントを呼び出して、エントリ ポイントで指定されているパラメーターより少ないパラメーターを渡す場合 (つまり、正式なパラメーターよりも実際のパラメーターが少ない場合)、C から呼び出される COBOL エントリ ポイントは次のいずれかになります。
- 関数プロトタイプを持つ C プログラムでは宣言されない
- 変数のパラメーター リストを持つ関数プロトタイプを使って C プログラムで宣言される (下記参照)
例
次のエントリ ポイントを定義した COBOL プログラムを使用するとします。
entry "bob" using arg1 arg2 arg3 arg4 arg5 arg6
arg7 arg8 arg9.
また、C プログラムに次のようなコードが含まれているとします。
i = bob(&x1, &x2);
この場合、C プログラムでこの COBOL エントリ ポイントを宣言するには、次のようにします。
int bob(void *arg1, void *arg2,...);