投稿
Oskar oskar_liebig
今プログラムが動いているスロットを調べる関数を作ってみました。BACKTRACEを使わないので、コンソール画面に影響が出ません。 公開キー E3XK33JS
8そうだね
プレイ済み
返信[1]
親投稿
Oskar oskar_liebig
これを組み込んだプログラムが複数のスロットにロードされていても正常に動作します。SMILEボタンのプログラムではCURRENT_SLOT() 関数は 4 を返します。 グローバルラベルとグローバル変数を使っていますが、思いっきり長くしておいたので、ほかで使っていることはまあないでしょう。
0そうだね
プレイ済み
返信[2]
親投稿
べー mmmggg
ナルホドー
0そうだね
プレイ済み
返信[3]
親投稿
otta777 otta777a
USEで他のプログラムスロットを実行可能な状態にしなければ プログラムが動いてるスロットから別のスロットの同名のラベルを 参照できないから自分のプログラムが格納されているスロット 番号が取得できるんですね。 BACKTRACEを使う方法もそうでしたがこの発想にも驚きました。
0そうだね
プレイ済み
返信[4]
親投稿
Oskar oskar_liebig
USEで他スロットを実行可能にしても大丈夫です。 プチコン3号のグローバル変数は、C言語でいうstatic変数(やC++の無名namespace)のように、同じ名前でもスロットごとに別物扱いになるからです。
0そうだね
プレイ済み
返信[5]
親投稿
otta777 otta777a
>Oskarさん なるほど!スロットごとに変数が別物として扱われるおかげ なんですね。参考になります。
0そうだね
プレイ済み