EPr*_*und 3 delphi string unicode delphi-unicode
在旧的Delphi版本(ANSI字符串)中,ShortStrings:
var Str: String[30];
Run Code Online (Sandbox Code Playgroud)
可以用来减少内存成本,并且仍具有ANSI编码。
在当前的Unicode版本中,是否像上面的ShortString那样别名为某些Unicode编码版本?
这种做法的优点是否仍然存在以减少内存成本?
即使在现代Unicode感知的Delphi版本中,Delphi短字符串也始终使用ANSI编码。它们被认为是旧数据类型,因此Embarcadero选择引入Unicode时不做任何更改。
值得的是,使用短字符串并不一定会减少内存成本。仅当您的字符串都接近相同长度时,才会这样做。如果您的字符串的长度有任何明显的变化,那么使用动态(也就是长)字符串将导致较低的内存开销。
我认为短字符串永远不会比动态字符串更好。它们之所以存在是因为它们早于动态字符串。如果首先发明了动态弦,那么短弦将不存在。实际上,它们在新的移动编译器中不存在。换句话说,只使用动态字符串。
| 归档时间: |
|
| 查看次数: |
447 次 |
| 最近记录: |