FreeBASIC マニュアルのトップに戻る

FreeBASIC FB_UNIQUEID_PUSH

目次→言語文書→その他→組み込み定義__FB_UNIQUEID_PUSH__←オリジナル・サイト

__FB_UNIQUEID_PUSH__ 左にメニュー・フレームが表示されていない場合は、ここをクリックして下さい

←リンク元に戻る プログラム開発関連に戻る

コンパイラーによって実行される固有の定義(マクロ)。

構文:
__FB_UNIQUEID_PUSH__( stack-id )

パラメータ:
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からの違い:
参照:
組み込み定義 に戻る
←リンク元に戻る プログラム開発関連に戻る

ページ歴史:2021-10-11 09:33:49
日本語翻訳:WATANABE Makoto、原文著作者:fxm

ホームページのトップに戻る

表示-非営利-継承