Next: , Previous: , Up: Gforth locals   [Contents][Index]


6.22.1.3 How long do locals live?

ローカル変数の生存期間はどのくらいなのか? – 生存期間に関する質問に対する正しい答えは、次のとおりです: ローカル変数は、 少なくともアクセスできる限りは生存します。 valueフレーバーのローカル変数の場合、 これは、 その可視性が終了するまでを意味します。 ただし、 variableフレーバーのローカル変数は、可視性の範囲をはるかに超えてアドレスを通じてアクセスできる可能性があります。 結局のところ、 これはそのようなローカル変数がガベージ・コレクションを受けなければならないことを意味します。 これには、Forth らしくない実装の複雑さが伴うため、 他の言語(C言語など)と同じ引っ込み思案な解決策を採用しました。 つまり、 ローカル変数は、 それが可視である間のみ生存します。その後、そのアドレスは無効になります(そして、 その後そのアドレスにアクセスするプログラムはエラーになります)。