关于参数传值和传引用的问题.
有两个函数:
fucntion selqry( qry: TQuery; strSQL: string): integer;//执行sql语句,返回数据集的条数
fucntion selqry( var qry: TQuery; strSQL: string): integer;//执行sql语句,返回数据集的条数
这两个函数功能一致,唯一的不同是,第一个参数,分别是传值和传引用。今天偶然翻翻《参透 delphi/kylix》,关于参数传值和传引用部分,好像是说,传引用不会给参数分配额外的空间,使用的是引用的内存空间;而传值会给参数在函数内分配一块内存空间,将值赋给参数。
我在cpu窗口下看了看两个函数的汇编代码,基本一致,就是传值 mov .. ebx,传引用 mov ..[ebx],
没有什么不同。
另外delphi 中的对象都是对象指针,根据这一点,我觉得上面两个函数应该是一样的。
我想问问高手的是,传值的函数会比传引用的函数多占用内存空间吗?那个更好一些?
谢谢!