1

在上一课中,我们在单元文件中定义了几个函数和过程。

procedure WriteNap(const elo: string; const n: TNap; const uto: string);
begin
  Write(elo, Nap2Str(n), uto);
end;

function PredNap(const n: TNap): TNap;
begin
  case n of
    hetfo: PredNap := vasarnap;
    NemNap: PredNap := n;
  else  
    PredNap := Pred(n)
  end;
end;

function SuccNap(const n: TNap): TNap;
begin
  case n of
    NemNap: SuccNap := n;
  else
    SuccNap := Succ(n)
  end;
end;

我必须去掉“Nap”这个词,这样我就可以在主程序中使用 Pred、Write、Succ 而不是 PredNap 等......我试图创建另一个使用这个单元并包含 Succ Pred 等功能的单元文件……真的没有成功。。

提前致谢 :)

4

1 回答 1

2

在文件的某处声明:

var Pred = Function (Const n:TNap):TNap;

在您对程序主体执行任何操作之前,请编写:

Pred := @PredNap;

这段代码的作用是,它创建一个与您的 PredNap() 具有相同签名的新函数指针,然后将 PredNap() 的地址分配给该指针。因此,无论何时调用 Pred(),实际调用的函数都是 PredNap()。希望这可以帮助。

于 2013-02-27T08:31:10.083 回答