在之前声明的另一个过程中调用一个过程

Call one procedure in another, that was declared before it

我有一个情况:

procedure Compile();
begin
  //stuff
  CompileBatch();
end;

procedure CompileBatch();
begin
  //stuff
end;

但这显然是行不通的,因为在Compile中还没有找到标识符"CompileBatch"。是否有任何解决方法,或者我是否必须重写 Compile 中的所有 CompileBatch 代码?我正在使用 Free Pascal。

您可以通过声明您的 CompileBatch forward 来完成此操作,如下所示:

procedure CompileBatch(); forward;

procedure Compile();
begin
  //stuff
  CompileBatch();
end;

procedure CompileBatch();
begin
  //stuff
end;