Modula-2:如何为指针分配程序?

时间:2015-05-28 11:38:50

标签: syntax function-pointers modula-2

我坚持将程序分配给Modula-2中的指针。

PROCEDURE print(node : Node_ptr);
BEGIN
(* some code *)
END print;

TYPE Node_ptr   = POINTER TO Node;
TYPE Visit_ptr  = POINTER TO PROCEDURE (Node_ptr);

TYPE
    Node = RECORD
        parent  : Node_ptr;
        left    : Node_ptr;
        right   : Node_ptr;
        id      : INTEGER;
        visit   : Visit_ptr;
END;

这以某种方式编译。

但我不知道如何将打印程序分配给我的Node记录的访问成员。我需要这样的东西:

node^.visit^ := print;

(即使是POINTER TO PROCEDURE定义也花了一些时间才弄明白......)

1 个答案:

答案 0 :(得分:2)

您的赋值语法是正确的(在将节点声明为Node_ptr并为其分配空间之后)。

有关更多信息,我建议阅读Wirth," Modula-2编程"。你可以找到好用的副本美元。它很简洁,但可能包含你所需要的一切。 (其他教程可以在http://freepages.modula2.org/tutor.html上找到。)