FB_UNIQUEID_PUSH
- 来源: https://www.freebasic.net/wiki/wikka.php?wakka=KeyPgDdfbuniqueidpush
- 最后更新: 2021-10-11
编译器执行的内置定义(宏)。
语法
` 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_POP__ 次数必须与该栈的 __FB_UNIQUEID_PUSH__ 次数相同)。
在使用的任意时刻,从开始累计应用的 __FB_UNIQUEID_POP__ 次数必须始终小于或等于累计应用的 __FB_UNIQUEID_PUSH__ 次数。
示例
另请参阅 __FB_UNIQUEID__ 示例。
start GeSHi
vb
' As the "unique identifiers" (used as jump labels) are successively pushed on to a stack,
' the jump-code bodies must be defined in the reversed order than the jump calls.
#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
Sleepend GeSHi
另请参阅 __FB_UNIQUEID_POP__ 示例。
版本
- 自 fbc 1.08.0 起
与 QB 的区别
- FreeBASIC 新增
另请参阅
__FB_UNIQUEID_POP____FB_UNIQUEID__
返回 目录