C 言語と Fortran の混在 第参弾 ― 2010年01月06日 12時45分18秒
C 言語と Fortran の関数呼び出しの違いは三つ。そして、最後の三つ目は関数の文字列型の引数の受渡し方。
C 言語では、文字列型は文字の配列として扱われる。その為、関数に渡すときは、その始点を渡すのに過ぎない。それに引き換え、Fortran では文字列は特別な操作がなされる。その為、関数の呼び出しにも特別な引数が存在する。
C 言語から Fortran の文字列を受け取る関数を呼ぶ場合は、本来の引数を並べた後に、文字列型の大きさを更に渡してやる必要がある。
例えば、fort を Fortran の手続き型として作る。
* Fortran subroutine()
subroutine example(three, int, six)
character(3) three
integer int
character(6) six
three = "3"
end
C 言語の主関数から呼び出す。関数名の最後に下線を付ける。必ず参照渡しにする。
/* C */
int main()
{
char three[3];
int i;
char six[6];
example_(three, &i, six, 3, 6);
}
C 言語と Fortran では文法なども違うが、C 言語の利用者が Fortran も混在の環境で開発するのに、これらの点を抑えておけば取り合えず作業は進められるようになる。
前回。
最近のコメント