[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 なんだ
と思っていたのですが.