【问题标题】: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 传递给函数时,可以将其视为整数类型。