[转帖]Delphi参数传递_Android, Python及开发编程讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  Android, Python及开发编程讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 3668 | 回复: 0   主题: [转帖]Delphi参数传递        下一篇 
wenjie.zhang
注册用户
等级:上尉
经验:628
发帖:54
精华:0
注册:2013-11-11
状态:离线
发送短消息息给wenjie.zhang 加好友    发送短消息息给wenjie.zhang 发消息
发表于: IP:您无权察看 2013-11-15 11:32:17 | [全部帖] [楼主帖] 楼主

 

1 形式参数与实际参数

     形式参数是指出现在过程或者函数首部“形参表”中的变量名,表示用于接收数据的变量。实际参数是指

     在调用过程或是函数时,传递给过程或函数的常量、变量或表达式。

    在过程或是函数的定义中,使用形式参数来确定该过程或函数所需要的参数的个数、类型以及参数之间的次序。在调用该过程或是函数时,实际参数将替换形式参数,形参和实参之间的对应关系为:第一个形参接受第一个实参的值,第二个形参接受第二个实参的值,依次类推。

2 参数的传递方式

    在Delphi中,有两种参数的传递方式,“按值传递”和“按地址传递”。在过程或者函数的首部“〈形参表〉”中的参数前面使用系统的保留字Var或者Out的形参变量表示为“按地址传递”,使用Const或没有任何保留字的形式参数,将使用“按值传递”的方式。

    声明为“按值传递”的参数仅负责得到实际参数的值,不保留内部对该参数的改变,而声明为“按地址传递”的参数将保留函数或过程内部对实际参数值的改变,并在调用结束后返回该值。“按地址传递”的参数实参和形参的类型必须一致,而“按值传递”的实参和形参之间仅需要赋值相容即可。

4.4.3 使用缺省参数

    在声明函数或过程中,可以给形参指定一个缺省的值,在调用时,如果没有给形参指定实参,则系统自动

     使用缺省的值,如果赋值,则使用实际参数的值。缺省参数声明的方法是在形参的类型后面使用“=”等

     号,并给出具体的常量值。

    但是需要注意的是,如果后面的参数没有使用缺省参数,不允许仅对前面的参数使用缺省参数。

4.4.4 赋值兼容与调用约定

    赋值兼容是指变量可以进行赋值或进行参数传递。当两个类型要进行赋值操作而又不满足赋值兼容时,将

     产生编译错误。

    Object Pascal 提供了五种过程和函数的调用方式,分别为Register,Pascal,Cdecl,Stdcall,SafeCall。 缺省的调用方式是Register方式。 Register和Pascal调用方式传递参数是从左到右,而Cdecl, Stdcall和 Safecall 调用方式传递参数则是从右到左。 Register调用方式自动清除调用所使用的堆栈和寄存器,负责处理调用错误,同时也是速度最快的调用方式。




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论