
1.Pascal嵌套中的Forward如何使用
forward是一种类似于前向调用的关键字,其用法如下:
function max(a,b:longint):longint;forward;
function ex1(a,b:longint):longint;forward;
function max(a,b:longint):longint;
begin
if a>b then exit(a);
exit(b);
end;
function ex1(a,b:longint):longint;
begin
exit(max(a,b));
end;
//当然这段程序无意义、、、
解释一下,是这么样的:在pascal中,所有procedure和function是不可以互相使用的,比如说:
function max(a,b:longint):longint;
begin
if a>b then exit(a);
exit(b);
end;
function ex1(a,b:longint):longint;
begin
exit(max(a,b));
end;
这段程序就是非法的,默认中pascal的互相调用会引起错误,可能是内存上容易因此错误吧。。
因此在互相调用之前需要向编译器声明,我要调用和我同级的子程序了,你得给我安排好了,于是编译器就给你安排了一下,使得,厄,貌似是内存指针上还是什么玩意儿的做了一下变动,就是换了一种处理方式,于是就可以调用了。。
其实还可以这么玩:
procedure ex1(ex:longint);forward;
procedure ex2(ex:longint);forward;
procedure ex1(ex:longint);
begin
//语句1
//语句2
ex2(n);
//语句X
//语句Y
end;
procedure ex2(ex:longint);
begin
begin
//语句1
//语句2
ex1(n);
//语句X
//语句Y
end;
然后就可以实现互相调用了··
可以继续追问或者私M我
有一个部位和马一样长