コンパイラーによって実行される固有の定義(マクロ)。
構文:
__FB_UNIQUEID_PUSH__( stack-id
)
パラメータ:
記述:
stack-id で識別されるスタックに、新しい一意の識別子を保存します(スタックのサイズが 1 増加します)。
(
__FB_UNIQUEID__ を使うと、スタックの最上位の識別子を取得でき、
__FB_UNIQUEID_POP__ を使うと、スタックから識別子を取り出せます)
注意:
-
「stack-id」名自体は、他のすべてのシンボルと別の名前空間です。
-
スタックには「一意の識別子」のみ登録することができます。
-
「一意の識別子」は、モジュールに固有の fb シンボルの名前なので、他のシンボル名と競合したり、影を付けたりすることはありません(「一意の識別子」は、名前として「LT_xxxx」の形式になるため、完全に一意ではない場合があります)。
-
fb は、ラベル、シンボル、一時変数などに、内部的に「LT_xxxx」という形式を使います(したがって、バージョン 0.0 以降の fbc プログラムでは、この形式の fbc シンボル名を付けることは避けてください)。
このようなスタックが使われなくなった場合は、空にすることを推奨します(最後に、このスタックに
__FB_UNIQUEID_PUSH__ と同じ数の
__FB_UNIQUEID_POP__ が適用されている必要があります)。
使うときはいつでも、最初から適用される
__FB_UNIQUEID_POP__ の数は、常に適用される
__FB_UNIQUEID_PUSH__ の数以下である必要があります。
例:
__FB_UNIQUEID__ の例も参照下さい。
' 「一意の識別子」(ジャンプラベルとして使用)がスタックに連続してプッシュされると、
' ジャンプコード本体は、ジャンプ呼び出しと逆の順序で定義する必要があります。
#macro go
__FB_UNIQUEID_PUSH__( stk )
Goto
__FB_UNIQUEID__( stk )
End If
#endmacro
#macro
end_go
__FB_UNIQUEID__( stk ):
__FB_UNIQUEID_POP__( stk )
#endmacro
Dim As Integer
N
Do
Input "Enter a value between 1 and 4 (0 or
empty input for exit) ? ", N
If N = 0 Then go
If N =
1 Then go
If N = 2 Then go
If N =
3 Then go
If N = 4 Then go
Continue
Do
end_go
Print "You
entered 4" : Continue Do
end_go
Print "You entered 3" : Continue Do
end_go
Print "You entered 2" : Continue Do
end_go
Print "You entered 1" : Continue Do
end_go
Print "End" : Exit Do
Loop
Sleep
__FB_UNIQUEID_POP__ の例も参照下さい。
バージョン:
QBからの違い:
参照: