Recursive Procedure Variables Not Saved When in COMMON (43930)
The information in this article applies to:
- Microsoft QuickBASIC 4.0
- Microsoft QuickBASIC 4.0b
- Microsoft QuickBASIC 4.5
- Microsoft BASIC Compiler for MS-DOS and OS/2 6.0
- Microsoft BASIC Compiler for MS-DOS and OS/2 6.0b
- Microsoft Basic Professional Development System (PDS) for MS-DOS and MS OS/2 7.0
This article was previously published under Q43930 SUMMARY
QuickBasic procedures can recursively CALL themselves. Any needed
variables to be used in the recursive procedure should be passed as
parameters, and all local variables (variables dimensioned only in the
SUB itself) variables whose values need to be preserved through each
recursive CALL should be declared as STATIC. STATIC declaration causes
each variable's values to be retained on the stack for later use.
One important note is that all variables that are located in a COMMON
or COMMON SHARED block and are used in a recursive procedure will not
be saved through each recursive CALL.
This information applies to Microsoft QuickBasic Versions 4.00, 4.00b,
and 4.50 for MS-DOS, Microsoft Basic Compiler Versions 6.00 and 6.00b
for MS-DOS and MS OS/2, and Microsoft Basic PDS Version 7.00 for
MS-DOS and MS OS/2.
Modification Type: | Minor | Last Reviewed: | 8/16/2005 |
---|
Keywords: | KB43930 |
---|
|