FC2ブログ

サブルーチンのreturnについて

自分用メモというか、開発者の人にしか関係ないネタです。

NScripter2のサブルーチンで実装するであろうreturn関数がすごく特殊なのでメモ。

・単純にdefsubで呼び出されてreturnした場合
 ⇒戻り先のラベルはdefsubのアドレスが登録されている(わかる)

・returnのパラメータ(引数)に「戻したいラベル」を指定する
 ⇒defsubの戻り先が指定したラベルの場所になる。
 ⇒事実上のgosub実装になる。
 ⇒戻し先が変更になるので、無限ループが実装できちゃう(gotoでも実装できたけど…)
  ⇒実装のやり方に注意。。。
スポンサーサイト