[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[dennou-ruby:000448] Re: proto2c



塩谷です. 

>> >文字列の場合は, C 化したときに長さの情報が付加されるのではなかったでし
>> >たっけ? 
>> 
>> それでは不十分です。f2cは長さ情報を引数リストの末尾に付け加
>> えますが、その値はこちらで決定する必要があります。また、
>> out/work変数の領域はラッパー内で確保しておかねばならないので、
>> いずれにせよ必要な長さを知らなければなりません。

FORTRAN の中では

	CHARACTER*(*) CTL

とか書いて, 長さが不定であるかのように扱いますが, これらは基本的に呼出
元で長さは決まっています. f2c 化したときの長さ情報というのは呼出元の長
さが渡っていると思っていたんですが, 違うのでしょうか?

たとえば, 以下のような FORTRAN プログラムで: 

	program main

	character cx*10

	call sub1(cx)
	write(*,*) cx

	end
*	---
	subroutine sub1(cx)

	character cx*(*)

	cx='abc'

	end

subroutine の中では 3 文字しか代入しなくても, main プログラムでは 10
文字分確保してあるので, f2c 化したときに付加される長さ情報は 10 なんだ
と思っていたのですが.