我知道两个变量,比如 a1 和 a2 出现在 Fortran 的 Equivalence(a1,a2) 语句中,然后它们占用相同的内存空间。所以说这发生在 a1 和 a2 都是该过程中的局部变量的过程中。
这意味着您不能只在内存中拥有 a1 和 a2 的副本,对吗?因为其中一个值将被覆盖。您可以将 a1 保存在内存位置,并将 a2 保存在整个过程的寄存器中,这样可以吗?
我的问题基本上是:您可以将 a1 保存在整个程序的寄存器中吗?
我会说是的...除非您用完寄存器并且必须将 a1 存储回内存。然后您将覆盖 a2 并丢失它的值,然后变量 a1 和 a2 将实际指向 a1 的值。