追加の考慮事項
RESET 命令をコーディングする場合には、次のことに留意してください。
- RESET は、基礎となる変数およびインポートされた変数、 またはサブプロシージャーのパラメーターには使用できません。
- RESET 命令では、プログラムが必要とする記憶域の容量が増えます。 変数がリセットされる場合には、 必要な記憶域は 2 倍になります。 複数オカレンス・データ構造、テーブル、および配列の場合には、 すべての繰り返しまたは要素のリセット値が保管されることに注意してください。
- プログラムの初期化ルーチン中で RESET が行われると、実行時にエラー・ メッセージが出されます。 *INZSR の処理中にサブルーチンの演算を終了するために GOTO または CABxx が使用されたか、またはエラー処理の結果としてサイクルの別の部分に制御が渡 された場合には、初期化ステップの保管域を初期化する部分には達しませ ん。この場合には、実行時にプログラムのすべての RESET 命令にエラー・メッセー ジが出されます。
- サブプロシージャー内の大域変数または構造に対する RESET 命令は、次の
場合に有効となります。
- *INZSR がない場合には常に有効です。
- *INZSR がある場合には、*INZSR が最低 1 回完了するまで有効にはなりま せん。 それ以降であれば、サイクル・メイン・プロシージャーが活動状態でない場合でも、常に有効になります。
- プログラムの呼び出し時に渡されない *ENTRY PLIST のパラメーターに対して RESET 命令を実行すると、予期せぬ結果が生じることがあります。 そのパラメーターが渡されるものであることが、%PARMS() が戻す値によって示されている場合には、代わりの方法として、パラメーターのように定義された変数に、パラメーター値を保存することができます。
注意!
RESET 値が保存されたときに、サイクル・モジュールで以下のすべてが 真である場合、ポインター非設定エラーが発生します。
- *INZSR がない。
- モジュール内のいずれかにおいて、サイクル・メイン・プロシージャーに対する入力パラメーターが RESET されている。
- サイクル・メイン・プロシージャーが呼び出される前に、サブプロシージャーが呼び出された。
詳細については、CLEAR (消去)を参照してください。