我坚持将程序分配给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定义也花了一些时间才弄明白......)
答案 0 :(得分:2)
您的赋值语法是正确的(在将节点声明为Node_ptr并为其分配空间之后)。
有关更多信息,我建议阅读Wirth," Modula-2编程"。你可以找到好用的副本美元。它很简洁,但可能包含你所需要的一切。 (其他教程可以在http://freepages.modula2.org/tutor.html上找到。)