では次にFORTRANプログラムからCの関数を呼び出す場合を考えましょう。こ の場合はCのプログラムの側で配慮をしておかなければならない点がいくつか あります。まず関数名ですがFORTRANコンパイラは自動的に前後に_を付けます。 そのためCのプログラムの側でFOR TRANから呼ばれることのある関数名には後 ろに_を付ける必要があります。それから引数はアドレスが渡されますからポ インター引数を取るように関数を用意する必要があります。上述のinc1を FORTRANコーラブルに書き直しましょう。
% cat test.c
/* FORTRANコーラブルなinc1 */
int inc1_( pi )
int * pi;
{
return * pi + 1;
}
これをFORTRAN側では
* FORTRANプログラムの中
integer i
i = 10
j = inc1( i )
という風になります。このようにFORTRANから任意のCサブプログラムが呼べる わけではないことがわかります。