Help Center
Help CenterFreeBASIC

__FB_JOIN__keyword

Intrinsic define (macro) performed by the compiler.

Intrinsic Defineskeyworddocumented

Syntax

__FB_JOIN__( arg1, arg2 )

Parameters

NameDescription
arg1,
arg2left (1) and right (2) arguments to join

Description


Joins two token arguments together as one, similar to token pasting operator (##) but more powerfull (will resolve arguments before joining).

Remarks

Version


  • Since fbc 1.08.0

Differences from QB


  • New to FreeBASIC

See also


Example


#macro m ( arg1, arg2 )

    #print arg1##arg2

    #print __FB_JOIN__( arg1, arg2 )

#endmacro



m(Free, BASIC)



/' Compiler output:

FreeBASIC

FreeBASIC

'/

#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

'/

Reference

  • Documented in KeyPgDdfbjoin.html