Call

Statement to invoke a subroutine

Syntax
   Call procname ([parameter list])

Description
   Calls a Sub or Function.

   This keyword is a holdover from earlier dialects of BASIC, and is mainly 
   deprecated.

   In -lang qb, it can be used to call Subs in code before they are 
   declared.  The function will be implicitly Declare'd, with any 
   parameters passed ByRef As Any.
   Note: until the function is declared, no type-checking is done on the 
   parameters, so it is up to the programmer to ensure they are of the 
   correct type.

Example
   '' Compile with -lang qb or -lang fblite

   #lang "fblite"

   Declare Sub foobar(ByVal x As Integer, ByVal y As Integer)
   Call foobar(35, 42)

   Sub foobar(ByVal x As Integer, ByVal y As Integer)
   Print x; y
   End Sub

   '' Compile with -lang qb or -lang fblite

   #lang "fblite"

   Function f ( ) As Integer
   f = 42
   End Function

   Call f ' execute function f, but ignore the answer

   '' Compile with -lang qb

   '$lang: "qb"

   Call mysub(15, 16) '' call "mysub" before it has been declared, or even mentioned.

   Sub mysub(ByRef a As Integer, ByRef b As Integer)
      
      Print a, b
      
   End Sub

Dialect Differences
   * The use of Call is not allowed in the -lang fb dialect.
   * The -lang fblite dialect does not allow you to call functions that 
     have not been previously declared.

Differences from QB
   * The procedure must have already been declared.
   * Call in QB will make a copy of all parameters, so changes made to the 
     arguments inside the called Sub will not be reflected in the variables 
     in the caller.

See also
   * Declare
   * Sub

