3.程序嵌套
在Delphi中,在函数或过程的内部,还可以定义新的函数或过程,这样的过程或函数只能由定义他的那个函数或过程中使用,这样的程序结构程序程序嵌套,也称为内部程序。
3.1嵌套层次
在Delphi中,程序具有一定的层次结构。运行子程序内部定义新的子程序,也就是子程序的嵌套定义。子程序的嵌套要求外层子程序能够完全包含内层子程序,不能局部包含,不允许交叉。
嵌套层次示意图:
示例:
procedure Out(S: String); var x, y: Integer; procedure In(S: String); begin ... end; begin ... end;
3.2 调用规则
在Delphi中,子程序的调用必须遵循如下规则:
-
子程序可以调用其相邻内层的子程序,不能隔层调用。如:A1可以调用A1B、A1C,但不能调用A3
-
内层子程序可以调用外层子程序而且允许隔层调用。如:A2B可以调用A2,A3可以调用A1
-
同一层的子程序,允许后定义的子程序调用先定义的子程序。如:A2C可以调用A2B,但A2B不可以调用A2C
-
如果需要调用同层中后定义的子程序,必须用保留字forward(超前引用)对后面的子程序进行说明