C 言語と Fortran の混在 第零弾2010年01月02日 13時23分08秒

Fortran の関数を C 言語から呼び出したり、C 言語の関数を呼び出したりも出来る。Fortran にはまだあまり詳しく無いので、これが環境依存なのか、一般的に通用する技法なのかは分らない。ここでは、C/C++ 利用者が Fortran も用い場合の四つの要点をまとめる。

まず、C 言語と Fortran の大きな違いは文字列型。

C 言語では文字の配列として扱い、NUL つまり、0 を特別な文字列の終端とみなす。どちらかとして言語としてサポートされているのではなく、利用者側が慣習として扱っている。

それに引替え、Fortran では文字列は型の一つとなって処理系でサポートされている。そのため、代入演算子や比較演算子が使える。Fortran では文字列の終端は空白で埋められている。これは言語側で自動的に処理される。

また、長さの違う文字列を比較した場合、終端の空白は無視されるので、長さが違くても先頭部分が同じなら、同一とみなされる。

C 言語利用者が、Fortran を使い始めるときには、文字列に注意を払うと入りやすい。全体的な動作はかなりの部分で同じなので、まずはその違いに注意を払う。

また、この文字列型の扱いが異なることにより、C 言語と Fortran 間で関数を呼び合う時に文字列型が渡される時には、その十分に注意をする必要がある。

次回