プロシージャ変数
プロシージャ内で使用される変数は、自動的にそのプロシージャに対してプライベートになります。つまり、その範囲はプロシージャに対してローカルになります。このプロシージャが呼び出すプロシージャの変数を共有したい場合、変数をパラメータとして他のプロシージャに渡します。
パブリック変数の宣言も可能です。共通のパブリック変数のセットを宣言するプロシージャのいずれもが、それらの変数を共有します。パブリック変数を宣言するには、プロシージャ名とパラメータの後に角括弧内 ([ ]) で変数をリストします。
パブリック (共有) 変数の使用は、推奨できるプログラミング手法ではありません。しかしながら、この例およびチュートリアルの演習では、デモンストレーションを目的として、パブリック変数とプライベート変数を混在して使用しています。
SAMPLES>write
SAMPLES>d ^publicvarsexample
setting a
setting b
setting c
The sum is: 6
SAMPLES>write
a=1
b=2
SAMPLES>
以下は、procexample.mac のコードです。
publicvarsexample
; examples of public variables
;
do proc1() ; call a procedure
quit ; end of the main routine
;
proc1() [a, b]
; a private procedure
; "c" and "d" are private variables
{
write !, "setting a" set a = 1
write !, "setting b" set b = 2
write !, "setting c" set c = 3
set d = a + b + c
write !, "The sum is: ", d
}