インテル® Fortran コンパイラー 19.0 デベロッパー・ガイドおよびリファレンス
アプリケーションのデフォルトの呼び出し規約と引数渡し規則を指定します。
Linux* および macOS*: | なし |
Windows*: | /iface:keyword |
keyword |
呼び出し規約または引数渡し規則を指定します。設定可能な値は以下のとおりです。
|
/iface:default |
デフォルトの呼び出し規約が使用されます。 |
このオプションは、アプリケーションのデフォルトの呼び出し規約と引数渡し規則を指定します。
このオプションによって制御される呼び出し規約と引数渡し規則は、次のとおりです。
呼び出しメカニズム (C または STDCALL): IA-32 アーキテクチャーでは、プロシージャーの呼び出しが返ってきたときのスタックレジスターの調整方法によって、呼び出しメカニズムが異なります。インテル® 64 アーキテクチャーでは、C 呼び出しメカニズムのみ利用できます。STDCALL メカニズムを指定すると無視されます。
引数渡しメカニズム (値渡しまたは参照渡し)
文字長引数渡し (引数リストの最後または引数アドレスの後)
外部名の大文字/小文字 (大文字または小文字)
名前の修飾 (プリフィクスとサフィックス)
ATTRIBUTES コンパイラー・ディレクティブを使用して、これらの規則を個別に変更することもできます。ATTRIBUTES ディレクティブの動作は、同じ名前を持つ iface オプションの動作と常に同じとは限りません。
オプション |
説明 |
---|---|
/iface:default |
デフォルトの呼び出し規約を使用します。これらの規則は次のとおりです。
|
/iface:cref |
外部名が小文字であることを除き、/iface:default と同じ規則を使用します。 |
/iface:cvf |
Compaq Visual Fortran および Microsoft* Fortran PowerStation と互換性のある呼び出し規約を使用します。このオプションは、Windows* システムでのみ利用できます。これらの規則は次のとおりです。
|
/iface:mixed_str_len_arg |
文字長が隠された文字引数に対して使用する引数渡し規則を指定します。このオプションは、文字引数の隠された文字長を、引数リストの対応する文字引数の直後に置くようにコンパイラーに指示します。 この手法は、Compaq Visual Fortran で使用されています。文字引数の受け渡しを行う言語が混在したプログラムを移植するときには、このオプションを正しく指定するか、ソースコード内で隠された文字長を持つ文字引数の順序を変更する必要があります。このオプションは、ほかの /iface オプションと一緒に使用することができます。 |
/iface:stdcall |
次の呼び出し規約を使用します。
|
/iface:stdref |
引数が参照渡しされることを除き、/iface:stdcall と同じ規則を使用します。 |
Windows* システム上では、/iface:cref オプションを指定するとデフォルトの外部名が上書きされ、小文字になります。外部名に対して "!dir$ attributes c, reference" を指定するのと同じです。
/iface:cref オプションを指定し、さらに外部名を大文字にする場合は、/names:uppercase オプションを明示的に指定しなければなりません。
IA-32 アーキテクチャー・ベースのシステムでは、呼び出し側のプログラムと呼び出される側のプロシージャーの呼び出しメカニズム (C または STDCALL) が一致していなければなりません。そうでない場合、予期しないエラーが発生することがあります。デフォルトのメカニズムを STDCALL に変更する場合、ATTRIBUTES DEFAULT ディレクティブを使用して、次のプロシージャーの呼び出し規約をリセットする必要があります。
派生型の FINAL プロシージャーとして指定されているプロシージャー
OPEN 文で USEROPEN プロシージャーとして指定されているプロシージャー
可変書式の式で参照されるプロシージャー
IFPORT モジュールから QSORT ライブラリー・ルーチンに渡される比較ルーチンとして指定されているプロシージャー
IFLOGM モジュールでダイアログ・コールバック・プロシージャーとして使用されるプロシージャー
C の呼び出し規約を仮定するほかのコンテキストや言語から呼び出されるプロシージャー
[Extract Compaq Visual Fortran Project Items (Compaq Visual Fortran プロジェクト項目の抽出)] ウィザードを使用してインポートした Visual Studio* プロジェクトには、STDCALL をデフォルトの呼び出し規約に設定する /iface:cvf が自動適用されます。
Visual Studio*: [External Procedures (外部プロシージャー)] > [Calling Convention (呼び出し規約)] (/iface:{cref|stdref|stdcall|cvf|default})
[External Procedures (外部プロシージャー)] > [String Length Argument Passing (文字長引数渡し)] (/iface:[no]mixed_str_len_arg)
Eclipse*: なし
Xcode*: なし
/iface:cvf |
Linux* および macOS*: なし Windows*: /Gm |
/iface:mixed_str_len_arg |
Linux* および macOS*: -mixed-str-len-arg Windows*: なし |
/iface:nomixed_str_len_arg |
Linux* および macOS*: -nomixed-str-len-arg Windows*: なし |
/iface:stdcall |
Linux* および macOS*: なし Windows*: /Gz |