CALLINTERFACE
CALLINTERFACE 指示では、CALL ステートメントのインターフェース規則を指定します。
指定された規則は、コンパイル単位で別の CALLINTERFACE が指定されるまで有効です。
| フォーマット |
 >>-+->>CALLINTERFACE-+--+---------+--+--------------+----------><
'->>CALLINT-------' +-SYSTEM--+ +-DESC---------+
+-OPTLINK-+ +-DESCRIPTOR---+
'-CDECL---' +-NODESC-------+
'-NODESCRIPTOR-'
|
- SYSTEM
- 呼び出しインターフェースの規則が、プラットフォームの標準のシステム・リンケージ規則であることを指定します。これは、Windows ベースのシステム API で使用されるリンケージ規則です。
- OPTLINK
- 呼び出しインターフェースの規則が、SYSTEM 規則より高速な代替を提供する OPTLINK であることを指定します。
OPTLINK は、既存の IBM C 関数と C++ 関数および COBOL プログラムと PL/I プログラムで
使用されるリンケージ規則です。
- CDECL
- 呼び出しインターフェースの規則が CDECL であることを
指定します。
CDECL は、Microsoft® Visual C++ for Windows 関数とのインターフェースをとるために使用されるリンケージ規則です。CDECL は、Microsoft C 関数と C++ 関数でのデフォルトの規則です。
- DESC、DESCRIPTOR
- CALL ステートメントの各引数に、引数の記述子を渡すことを指定します。
- NODESC、NODESCRIPTOR
- CALL ステートメントの各引数に、引数の記述子を渡さないことを指定します。NODESC/NODESCRIPTOR はデフォルトです。
>>CALLINTERFACE は手続き部でのみ指定します。
CALLINTERFACE 指示に対する CALL ステートメントの位置は、COPY ステートメントおよび REPLACE ステートメントの処理の後と認識されます。例えば、COPY テキスト内の CALL ステートメントおよび CALLINTERFACE 指示は、CALLINTERFACE 指示に対して示される
規則によって処理されます。
構文および一般規則
- >>CALLINTERFACE は、領域 B に、それだけで 1 行になるように指定する必要があります。
- >>CALLINTERFACE は、以下の場合には指定できません。
- COPY ステートメント内、または REPLACE ステートメント内
- 継続文字ストリングの行の間
- デバッグ行上
- COBOL ステートメント内
- >>CALLINTERFACE の指定は、現在の
コンパイル単位に限定されます。
- REPLACE ステートメント、および COPY ステートメントの REPLACING 句は、CALLINTERFACE 指示に影響を及ぼしません。
指示とコンパイラー・オプションの違い
CALLINTERFACE 指示または CALLINT コンパイラー・オプションのいずれかによって、使用する呼び出し規則を指定できます。1 つのコンパイル単位内で CALL ステートメントに対して複数の呼び出し規則を使用したい場合は指示を使用します。コンパイル単位全体に同じ呼び出し規則を使用する場合は、コンパイラー・オプションを使用します。
サブオプションの優先順位
CALLINTERFACE 指示 (サブオプションを指定) および CALLINT コンパイラー・
オプションの両方を指定すると、指示によって、コンパイル単位
内の指示に従うステートメントに対するコンパイラー・オプションの指定がオーバーライドされます。
CALLINTERFACE 指示にサブオプションを指定しないと、CALLINT コンパイラー・オプションの指定が有効となります。
DESC/NODESC サブオプションのみを指定すると、有効な呼び出し規則は、CALLINT コンパイラー・オプションに指定された規則となります。(CALLINTERFACE 指示に対するオプションは、DESC/NODESC のみです。これらは、CALLINT コンパイラー・オプションでは使用不可です。) 例えば、CALLINT コンパイラー・オプションが
CALLINT SYSTEM に設定されている場合、以下の指示を指定します。
(Section A)
...
>>CALLINTERFACE OPTLINK
(Section B)
...
>>CALLINTERFACE DESC
(Section C)
以下の指定が有効です。
- Section A: SYSTEM
- Section B: OPTLINK
- Section C: SYSTEM DESC
|