【问题标题】:Is there some advantage in passing a Char parameter as "const"? [duplicate]将 Char 参数作为“const”传递有什么好处吗? [复制]
【发布时间】:2020-03-06 08:05:22
【问题描述】:

我已经 read 将参数作为 const 传递允许编译器优化结构化和字符串类型的代码。

将Char 参数声明为const 有什么好处吗?

procedure Test(const AMyChar : Char);

而不是

procedure Test(AMyChar : Char);

如果是这样,它与unicode migration有关吗?

【问题讨论】:

标签: delphi parameters parameter-passing delphi-xe7


【解决方案1】:

将 Char 参数声明为 const 有什么好处吗?

不,值的传递方式没有区别。

您指的是传递引用计数类型的优化。当它们作为const 传递时,编译器可以省略引用计数代码,因为它知道被调用者不能修改对象。但是Char 没有被引用计数,因此不适用。

或者如果使用const,结构化类型可以通过引用而不是复制传递。这可以避免一些内存复制,这可以为更大的类型带来性能优势。同样,这不适用于 16 位 Char。

当您想了解如何将Char 传递给函数时,可以将其视为整数类型。

【讨论】:

  • 感谢您的解释。那么Variant 类型参数呢?
  • 作为const传递肯定更有效率
猜你喜欢
  • 1970-01-01
  • 2011-04-15
  • 2018-06-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-04-23
相关资源
最近更新 更多