Skip to content

FB_JOIN


编译器执行的内置定义(宏)。

语法

` FB_JOIN( arg1, arg2 )

`

参数

arg1arg2

要拼接的左(1)和右(2)参数

描述

将两个标记参数拼接为一个,类似于标记粘贴运算符(##),但功能更强大(会在拼接前先展开参数)。

示例

start GeSHi

vb
#macro m ( arg1, arg2 )
    #print arg1##arg2
    #print __FB_JOIN__( arg1, arg2 )
#endmacro

m(Free, BASIC)

/' Compiler output:
FreeBASIC
FreeBASIC
'/

end GeSHi

start GeSHi

vb
#define PREFIX p
#define SUFFIX _T

'' this won't work - arguments not expanded
#define   makename1( x )  PREFIX##x##SUFFIX

'' this will work - can do this in older versions of fbc too
#define join( a, b ) a##b
#define makename2( x ) join( PREFIX, join( x, SUFFIX ) )

'' built in __FB_JOIN__() -- works pretty much like join() above
#define   makename3( x )  __FB_JOIN__( PREFIX, __FB_JOIN__( x, SUFFIX ) )

#macro dump( arg )
    #print #arg
#endmacro

dump( makename1(text) )
dump( makename2(text) )
dump( makename3(text) )

/' Compiler output:
PREFIXtextSUFFIX
ptext_T
ptext_T
'/

end GeSHi

版本

  • 自 fbc 1.08.0 起

与 QB 的区别

  • FreeBASIC 新增

另请参阅

  • 运算符 ## (预处理器连接)

返回 目录

基于 FreeBASIC 官方文档翻译 如有侵权请联系我们删除
FreeBASIC 是开源项目,与微软公司无隶属关系