インテル® Fortran コンパイラー 18.0 デベロッパー・ガイドおよびリファレンス
モジュール変数または共通ブロックは、Fortran のエンティティーで BIND 属性を使用していて、そのメンバーも互換性がある場合、C グローバル変数と互換性があります。例えば、次のモジュールの c_extern、c2、com および single について考えてみます。
互換性の例 |
---|
|
互換性のある C 外部変数 |
---|
int c_extern; long myVariable; struct {float r, s;} com; float single; |
グローバル引数のアクセス例 |
---|
|
Fortran の変数は、標準の BIND C 属性を使用して、さまざまなグローバル引数にアクセスすることができます。
上記のコードでは、次の 2 つの外部変数が作成されます (2 つ目の変数は大文字と小文字が区別され、適切に修飾されます): idata と foo_mp_rdata。
C との名前の不一致を解消するには、BIND 属性を使用します。
グローバル変数文の例 |
---|
int idata[20]; // declared as global (outside of any function) |
Fortran のグローバル変数 (COMMON) 宣言 (ほかの言語では外部変数として参照可能) |
---|
|
上記のコードでは、BIND(C) により、ターゲットの規則に基づいて名前が修飾され、小文字が使用されます。
C の外部変数参照文 |
---|
// pi への外部参照を含む C コード extern float pi; |
C が参照するグローバル変数名は、Fortran の共通ブロック内の変数名 (pi_r) ではなく、共通ブロック名 (pi) であることに注意してください。したがって、空白の (名前のない) 共通ブロックを使用して、C と Fortran の間でデータを参照することはできません。