next up previous contents
Next: FORTRANコモンブロックをCから使う Up: CとFORTRANの混在 Previous: Cプログラムの中からFORTRANサブルーチンを呼ぶ

FORTRANプログラムの中からCの関数を呼ぶ

では次に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サブプログラムが呼べる わけではないことがわかります。



next up previous contents
Next: FORTRANコモンブロックをCから使う Up: CとFORTRANの混在 Previous: Cプログラムの中からFORTRANサブルーチンを呼ぶ



Kinya Hibino
Sun Jan 14 21:50:32 JST 1996