書式: @local @local 変数名1 , 変数名2 , 変数名3 …新しい変数環境に切り替えます。以前の環境は保持します。
書式: @endlocal @endlocal 変数名1 , 変数名2 , 変数名3 …現在の環境を破棄し、以前の環境に戻します。
dim a(3) = (1,2,3) @local a = 999 @print a : # 999 表示 @endlocal @print a(0);" ";a(1);" ";a(2) : # 1 2 3 表示@print はsc_basic と同じ仕様です。
a = 1 @local a = 2 @local a = 3 @print a : # 3 表示 @endlocal @print a : # 2 表示 @endlocal @print a : # 1 表示切り替え可能環境数は 7 です。7 個を超えて @local を実行した場合は -901 を返して中断します。
a. for i = 0 to 10 @local next @endlocal b. @local for i = 0 to 10 @endlocal nextこれらの場合、for の制御変数が途中から見えなくなってしまうので、STATUS_ILLEGAL_FORLOOP を返して中断します。
c. for i = 0 to 10 @local @endlocal next d. @local for i = 0 to 10 next @endlocal
このプログラムでは STRCALC_PARAM 構造体 の配列を使用しており、処理用の環境は空の器として別に存在します。 @local、@endlocal が実行された時に、処理用の環境と配列の内容を入れ替える事で、環境の切り替えを行います。 ![]() StrCalc の初期化/解放は、配列に対してまとめて行われます。
|