60 lines
887 B
Plaintext
60 lines
887 B
Plaintext
//
|
|
// $Id$
|
|
//
|
|
|
|
// Managing variables by reference
|
|
|
|
function Main()
|
|
STATIC s:=10
|
|
|
|
local x := 0
|
|
|
|
QOut( "Managing LOCAL variables by reference" )
|
|
Qout( 'In main before ref1 x=', x )
|
|
ref1( @x )
|
|
Qout( ' In main after ref1 x=', x )
|
|
|
|
|
|
QOut( "Managing STATIC variables by reference" )
|
|
Qout( 'In main before ref1 s=', s )
|
|
ref1( @s )
|
|
Qout( ' In main after ref1 s=', s )
|
|
|
|
return nil
|
|
|
|
function ref1( x )
|
|
|
|
x++
|
|
Qout( ' In ref1 before ref2 =', x )
|
|
Ref2( @x )
|
|
Qout( ' In ref1 after ref2 =', x )
|
|
|
|
return nil
|
|
|
|
function ref2( x )
|
|
|
|
x++
|
|
Qout( ' In ref2 before ref3 =', x )
|
|
Ref3( @x )
|
|
Qout( ' In ref2 after ref3 =', x )
|
|
|
|
return nil
|
|
|
|
function ref3( x )
|
|
STATIC a
|
|
|
|
x++
|
|
Qout( ' In ref3 before ref4 =', x )
|
|
a ={ x, x }
|
|
Ref4( @a )
|
|
Qout( ' In ref3 after ref4 =', x )
|
|
|
|
return nil
|
|
|
|
function ref4( a )
|
|
|
|
a[ 1 ]++
|
|
Qout( ' In ref4 =', a[ 1 ] )
|
|
|
|
return nil
|