自定义的过程问题(20分)

  • 主题发起人 主题发起人 weixj2003ld
  • 开始时间 开始时间
W

weixj2003ld

Unregistered / Unconfirmed
GUEST, unregistred user!
过程声明
procedure Send_XT_1(var A,B:integer;var C:Longword);
过程实现
procedure Form1.Send_XT_1(var A,B:integer;var C:Longword);
begin
end;
过程调用
Send_XT_1(34,4,455);

但是运行出现:
[Error] Unit1.pas(34): Types of actual and formal var parameters must be identical
 
晕,你单步调试看到底是哪句出错呀,
 
过程声明
procedure Send_XT_1(A,B:integer
C:Longword);
过程实现
procedure Form1.Send_XT_1(A,B:integer;C:Longword);
begin
end;
 
Send_XT_1(34,4,455);//大哥,你申明的是变量啊.
 
调用时:

var
a,b:integer;
c:Longword;
begin
a:=3;
b:=4;
c:=5;
Send_XT_1(a,b,c);
end;
 
声明:
procedure Send_XT_1(A,B:integer
C:Longword);

去掉VAR
 
不去掉也没错呀.
 
请问,声明过程时带Var和不带有什么区别?
 
什么区别???不是很明显了吗???

我那样写的就能调用.

而你那样调用,就要按他们说的那样写.
 
代var表示参数使用地址传递。不带var表示参数使用值传递。

你声明的是var,表明你传入的参数是有返回值的。但是你传入的参数是常量,所有要报错!
 
>>>Send_XT_1(34,4,455);
你调用的时候是传值, 而不是传地址,故要将过程中的参数前的‘var’去掉。
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
639
import
I
后退
顶部