qb45advr.hlp (Topic list)
STATIC Statement Details
  QuickSCREEN      Details      Example      Contents      Index
──────────────────────────────────────────────────────────────────────────────
STATIC Statement Details
 
Syntax
  STATIC variablelist
 
A STATIC statement variablelist has the following syntax:
 
  variable[()] [AS type] [,variable[( )][AS type]]...
 
The variablelist takes the following arguments:
 
  Argument   Description
  variable   Either a variable name or an array name.
  AS type    Declares the type of variable. The type argument can be
             INTEGER, LONG, SINGLE, DOUBLE, STRING, or a user-defined
             type.
 
The STATIC statement can appear only in a SUB, FUNCTION, or DEF FN function.
 
Earlier versions of BASIC required the number of dimensions in parentheses
after an array name. In QuickBASIC, the number of dimensions is optional.
 
Variables declared in a STATIC statement override variables of the same name
shared by DIM or COMMON statements in the module-level code. Variables in a
STATIC statement also override global constants of the same name.
 
Usually, variables used in DEF FN functions are global to the module;
however, you can use the STATIC statement inside a DEF FN statement to
declare a variable as local to only that function.
 
  Note: The STATIC attribute on SUB and FUNCTION statements declares
        the default for variables to be STATIC. Variables having the
        same name as variables shared by the module-level code are
        still shared. In contrast, the STATIC statement makes specific
        variables STATIC and overrides any variables shared by the
        module-level code. The $STATIC metacommand affects how memory
        is allocated for arrays.