XL Fortran は、kind 型付きパラメーター値を保持する名前付き定数を含む ISO_C_BINDING 組み込みモジュールを組み込み型に提供します。 それらの名前は、対応する C 型とともに 表 27 に示されています。 この表にリストされているこれらの組み込み型のみが相互運用可能です。 他の組み込み型は相互運用可能ではありません。
Fortran 派生型 は、Fortran 派生型定義に BIND 属性が 明示的に指定されている場合に相互運用可能です。 たとえば、次のようになります。
TYPE, BIND(C) :: MYFTYPE . . END TYPE MYFTYPE
派生型 C_PTR は任意の C データ・ポインターと 相互運用可能であり、C_FUNPTR は人にの C 関数ポインター型と 相互運用可能であることに注意してください。 Fortran 派生型は、C 構造型と同じ数のコンポーネントを持ち、Fortran 派生型のコンポーネントが、 C 構造型の対応するコンポーネントの型と相互運用可能な型と型付パラメーターを持つ場合に、C 構造型と相互運用可能です。 Fortran 派生型のコンポーネントと C 構造型のコンポーネントは、 それぞれの型定義の同じ相対位置で宣言されている場合に対応します。
たとえば、以下で宣言される C 型 myctype は、以下で宣言される Fortran 型 myftype と相互運用可能です。
typedef struct { int m, n; float r; } myctype;
USE, INTRINSIC :: ISO_C_BINDING TYPE, BIND(C) :: MYFTYPE INTEGER(C_INT) :: I, J REAL(C_FLOAT) :: S END TYPE MYFTYPE
派生型と C 構造型の対応するコンポーネントの名前は、同じである必要はありません。
ビット・フィールドを含むか、柔軟な配列メンバーを含む C 構造型と 相互運用可能な Fortran 型はありません。 C Union 型と相互運用可能な Fortran 型はありません。
注: