对于最新的 Delphi 版本(Berlin/10.1/24), [Ref] 属性真的有必要吗?
我问这个是因为在线文档 http://docwiki.embarcadero.com/RADStudio/Berlin/en/Parameters_(Delphi)#Constant_Parameters says:
常量参数可以通过值或通过方式传递给函数
参考,取决于所使用的具体编译器。为了强制
编译器通过引用传递常量参数,可以使用
[Ref] 带有 const 关键字的装饰器。
这与文档中描述的非常相似。你会用[ref]
如果您有理由强制参数通过引用传递。我能想到的一个例子是互操作。假设您正在调用一个定义如下的 API 函数:
typedef struct {
int foo;
} INFO;
int DoStuff(const INFO *lpInfo);
在 Pascal 中,您可能希望像这样导入它:
type
TInfo = record
foo: Integer;
end;
function DoStuff(const Info: TInfo): Integer; cdecl; external libname;
但是因为TInfo
如果很小,编译器可能会选择按值传递结构。所以你可以用注释[ref]
强制编译器将参数作为引用传递。
function DoStuff(const [ref] Info: TInfo): Integer; cdecl; external libname;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)