Fortran の Equivalence(a1,a2) ステートメントに a1 と a2 という 2 つの変数が表示され、同じメモリ空間を占有することを理解しています。これは、a1 と a2 の両方がそのプロシージャ内のローカル変数であるプロシージャで発生するとします。
これは、メモリ内に a1 と a2 のコピーしか持てないということですよね?値の 1 つが上書きされるためです。プロシージャ全体で a1 をメモリ ロケーションに保持し、a2 をレジスタに保持することができますが、これで問題ありませんか?
私の質問は基本的に次のとおりです。手順全体で a1 を登録簿に保管できますか?
はい...レジスタを使い果たし、a1をメモリに保存しなければならない場合を除きます。次に、a2 を上書きしてその値を失い、変数 a1 と a2 の両方が実際に a1 の値を指します。