外部関数への配列インターフェース

 投稿者:寒川光メール  投稿日:2010年 7月16日(金)16時28分54秒
  Fortran 77 から十進BASICへのトランスレータを作ろうと考えています.
Fortranのように,2次元配列 dimension a(n,n) の特定の列ベクトルを call subr(a(1,2),n) のように渡して,サブルーチン側では external subr(x(),n) と1次元配列では受けられないようですが,もう少し単純なものは可能なようです.
例えば,1次元配列の途中の要素 x(5) を call subr(x(5)) と渡して,スカラー変数として external subr(a) として受けることができると認識しています.しかし,external subr(a()) とするとコンパイル時のエラーになります.文法上保証されるのはどの範囲でしょうか.
 

Re: 外部関数への配列インターフェース

 投稿者:白石 和夫  投稿日:2010年 7月16日(金)18時36分24秒
  > No.1299[元記事へ]

外部副プログラムの引数に2次元配列を取りたいときは,
EXTERNAL SUB s(a(,))
のように括弧の内側に(次元数-1)個のコンマを書きます。
配列要素を単純変数と同様に扱うことはできますが,
2次元配列中の列または行を1次元配列として扱うことはできません。
なお,Full BASICでは,外部関数に配列を渡すと値渡しになります。
副プログラムと絵定義は参照渡しです。
 

戻る