Help Center
Help CenterFreeBASIC

__Fb_Arg_Listexpand__keyword

Intrinsic define (macro) performed by the compiler.

Intrinsic Defineskeyworddocumented

Syntax

__FB_ARG_LISTEXPAND__( macroname, macroargcount, args... )

Parameters

NameDescription
macronamename of the macro used for extension calls
macroargcountnumber of parameters for the 'macroname' macro
expand the parameter list 'args...' according to the 'macroargcount' value:
- 'macroargcount > 0' : pass 'macroargcount' parameters each time
- 'macroargcount = 0' : pass all parameters
- 'macroargcount < 0' : for each parameter passed, the previous 'macroargcount' parameters are automatically removed on the next pass
args...argument list

Description


Expands to one or more 'macroname( .... )' depending on the value of macroargcount and number of arguments in the args... list.

Returns empty string on invalid index, rather than compile error.

Remarks

Version


  • Since fbc 1.20.0

Differences from QB


  • New to FreeBASIC

See also


Example


#macro m( arg... )

    #print "   "##arg

#endmacro



#print "macroargcount>0 (=1):"

__FB_ARG_LISTEXPAND__( m, 1, Hello1, Hello2, Hello3, Hello4)

#print " "

#print "macroargcount=0 (=0):"

__FB_ARG_LISTEXPAND__( m, 0, Hello1, Hello2, Hello3, Hello4)

#print " "

#print "macroargcount<0 (=-1):"

__FB_ARG_LISTEXPAND__( m, -1, Hello1, Hello2, Hello3, Hello4)





/' Compiler output:

macroargcount>0 (=1):

   Hello1

   Hello2

   Hello3

   Hello4

 

macroargcount=0 (=0):

   Hello1, Hello2, Hello3, Hello4

 

macroargcount<0 (=-1):

   Hello1, Hello2, Hello3, Hello4

   Hello2, Hello3, Hello4

   Hello3, Hello4

   Hello4

'/

Reference

  • Documented in KeyPgDdfbarglistexpand.html