Delphi 常量和引用

发布于 2024-08-26 00:29:52 字数 258 浏览 8 评论 0原文

我想传递对 delphi 中函数的常量引用,因此我确信引用的对象不会更改并节省时间和内存。所以我想声明一个类似的函数,

function foo(var const Value : Bar) : Boolean;

但是这是不允许的。我认为常量值会自动作为参考发送。但是我发现事实并非如此(在将对象发送到函数之前获取对象的地址给我 $12F50C,而函数内同一对象的地址是 $12F564)

我可以做什么来发送常量引用?

I want to pass constant references to functions in delphi, so I am sure that the referenced object won't change and to save time and memory. So I want to declare a function like

function foo(var const Value : Bar) : Boolean;

however this is not allowed. I thought constant values would be automatically sent as references. However I found out that it is not the case (getting the address of an object before sending it to the function gives me $12F50C and the address of the same object inside the function is $12F564)

What can I do to send constant references?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

丑丑阿 2024-09-02 00:29:53

Function Foo(Const Value:Bar):Boolean 以“最有效”的方式传递值,对于大型对象,这通常通过引用传递,但较小的对象往往通过值传递。

这个问题的答案更详细......

请注意,传递标记为 const 的参数并不意味着它不能更改,它只是意味着编译器不会让您直接更改它。

Function Foo(Const Value:Bar):Boolean passes the value in the "most efficient" way, for large objects this is usualy by reference but smaller objects tend to get passed by value.

The answers to this question go into more detail...

Note that passing a parameter marked as const doesn't mean it can't be changed, it just means the compiler won't let you directly change it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文