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

[dennou-ruby:000457] Re: proto2c



豊田です。

| 塩谷です. 
| 
| >> >...
| >> >subroutine の中では 3 文字しか代入しなくても, main プログラムで
は 10
| >> >文字分確保してあるので, f2c 化したときに付加される長さ情報は 10
B$J$s$@xxxxxx
| >> >と思っていたのですが. 
| >> 
| >> 上の例での10を決める根拠が欲しいのです。
| 
| うーむ, まだよく見えてきません. 
| 10 を決める根拠は main プログラムでそう宣言してあるからなんですが. 

つまり、サブルーチン側で何文字を期待しているのかがメインからはわからない
ので、メインでは 10 文字を与えていいのかどうだかわからないと
心配していらっしゃるのです。

| >> mainに相当する部分がラッパーなのでf2cで得るのでなくCで書く必
| >> 要があり、その際にf2cで得たsub_(char*,long)を sub1_(cx, len) 
| >> と呼ぶために、長さlenを決めなくてはなりません。で、lenを決め
| >> る場合には、sub1側で想定しているcxの最大長を知る必要があるわ
| >> けです。

最大長とかいておられることから規格の誤解があるのではないかと懸念します。
最大長はありません。存在するのは cx の最小長です。

      subroutine sub(string)
        character(len = 14):: string
      end subroutine

ならば 14 文字以上を与えなければならない。

      subroutine sub(string)
        character(len = *):: string
      end subroutine

ならば任意の文字型値を与えてよろしい。です。

DCL ではほとんど後者なので問題はない、というのが塩谷先生の
いわんとするところですよね。
-- 
arte, non vi.
豊田英司 TOYODA Eizi
toyoda@xxxxxx