Purpose |
Declare static variables inside a procedure. Static variables retain their values as long as the program is running. |
Syntax |
STATIC variable[()] [AS type] [, variable[()]] STATIC variable[()] [, variable[()]] [, ...] AS type |
Remarks |
The STATIC statement is valid only inside a Sub or Function. Static variables retain their values even after the Sub or Function ends. A static variable is local to its Sub or Function, and can have the same name as other variables in other parts of the program without conflict. To declare an array as a static variable, use an empty set of parentheses in the variable list: You can then use the DIM statement to dimension the array. STATIC MyArray%() STATIC StringArray() AS STRING The STATIC statement may, optionally, accept a list of variables, all of which are defined by the type descriptor keyword that follows them. For example: STATIC aaa, bbb, ccc AS INTEGER STATIC vptr, aptr() AS LONG PTR |
Restrictions |
DEFtype has no effect on variables defined by a STATIC statement. |
See also |
|
Example |
#COMPILE EXE #DIM ALL #INCLUDE "WIN32API.INC"
DECLARE SUB DoMessage ()
FUNCTION PBMAIN DIM z% FOR z% = 1 TO 5 DoMessage NEXT z% END FUNCTION
SUB DoMessage () STATIC x AS INTEGER STATIC Message() AS ASCIIZ * 256 DIM Message(1 TO 5) AS STATIC ASCIIZ * 256
INCR x 'add one to x Message(x) = "X =" + STR$(x)
#IF %DEF(%PB_CC32) PRINT Message(x) #ELSE MSGBOX Message(x) #ENDIF END SUB |