1

一些程序或函数是写在另一个程序或函数中的,例如:

function Foo: Integer;
var A: String;
    procedure Bar;
    begin
      A := '2';
      //code
    end; 
begin
  A:= '1';
  Bar;
  Result := StrToInt(A);
end;

在这个例子中,在 Foo 函数中声明的所有变量,都可以在 Bar 中访问。上下文是如何共享的?

4

1 回答 1

4

调用范围将其帧指针作为隐藏参数传递给内部过程。然后内部过程可以使用这个隐藏指针来访问外部范围内的变量。

于 2013-03-20T20:23:09.097 回答