トピック
うらさみ urasami

質問 : GOSUB

このゲームやって1年なのに、未だにGOSUBが分からない…
1そうだね
プレイ済み
返信[1]
親投稿
イスターリャ arduinotexter
GOTOは戻ってこない。 GOSUBは戻ってくる。 RETURNで戻るかエラーになるかの違い。 …だけで分かったら凄い人。
1そうだね
プレイ済み
返信[2]
親投稿
わからないのでレベルがわからないので適したコメントかわからないけど、GOTOは飛びっぱなしなのに対して、GOSUBは戻ってくるのが前提です。なのでGOSUBはその場所に飛ぶ前に内部的に戻ってくるための目印(栞?)のようなものを記録してあって、RETURNを見つけるとその目印の場所(正確には命令の次)に戻ってきます。 逆に戻る予定もないのにGOSUBで飛んでしまうと目印の記録が溜まってしまって何度も呼び出すといずれメモリー的なエラーになります。なのでGOSUBでとんだ際は、必ずRETURNで戻ってください。 逆にGOSUBで飛んでないのにRETURN命令が見つかると目印がない状態なので戻る場所がわからないので、そこでエラーになります。 ただしRETURNはDEFの戻りとしても利用出来るので、DEFの中のRETURNの場合は、GOSUBとは違う扱いになる場合もあるので注意。
2そうだね
プレイ済み
返信[3]
親投稿
うらさみ urasami
説明ありがとうございました!
0そうだね
プレイ済み