某些过程或函数写在另一个过程中,如:
function Foo: Integer;
var A: String;
procedure Bar;
begin
A := '2';
//code
end;
begin
A:= '1';
Bar;
Result := StrToInt(A);
end;
在这个例子中,在Foo函数中声明的所有变量都可以在Bar内部进行访问。 如何分享上下文?
答案 0 :(得分:4)
调用范围将其帧指针作为隐藏参数传递给内部过程。然后,内部过程可以使用此隐藏指针访问外部作用域中的变量。