bas7advr.hlp (Topic list)
Important Notice
The pages on this site contain documentation for very old MS-DOS software, purely for historical purposes. If you're looking for up-to-date documentation, particularly for programming, you should not rely on the information found here, as it will be woefully out of date.
STATIC Statement Details
  Syntax  Details  Example                 Contents  Index  Back
──────────────────────────────────────────────────────────────────────────────
The STATIC statement makes simple variables or arrays local to a DEF FN
function, a FUNCTION procedure, or a SUB procedure, and preserves values
between calls.
 
STATIC variable[()] [AS type] [,variable[()] [AS type]]...
    ■ AS type declares the type of the variable. The type may be INTEGER,
      LONG, SINGLE, DOUBLE, STRING (for variable-length strings),
      STRING * length (for fixed-length strings), CURRENCY, or a user-
      defined type.
 
Usage Notes
    ■ STATIC is a BASIC declaration that makes simple variables or
      arrays local to a procedure (or a DEF FN function) and preserves
      the variable values between procedure calls
    ■ The STATIC statement can appear only in a SUB procedure, FUNCTION
      procedure, or DEF FN function.
    ■ Earlier versions of BASIC required the number of dimensions in
      parentheses after an array name. The number of dimensions in BASIC
      is now 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.
    ■ The differences between the STATIC statement, the STATIC attribute,
      and the $STATIC metacommand are:
 
        Statement/Attribute        Differences
        ═══════════════════════    ════════════════════════════════════════
        STATIC attribute on SUB    Declares the default for variables to be
        and FUNCTION statements    static. Variables having the same name
                                   as variables shared by the module-level
                                   code are still shared.
 
        STATIC statement           Makes specific variables static and
                                   overrides any variables shared by the
                                   module-level code.
 
        $STATIC metacommand        Affects how memory is allocated for
                                   arrays.