Delphi - CompareStr和CompareString之间的区别

5
我希望有人能为我解答一下这个问题:在Delphi 2009中,CompareStr(定义在SysUtils中)和CompareString(来自Windows API)函数之间有什么区别?两者都可以指定要使用的区域设置,是Windows API更加“完整”,因为有可用的比较标记吗?因此,其中一个比另一个更快吗?
1个回答

6

CompareString 使用区域设置信息,使得像 ae 和 æ 这样的内容被视为匹配,并且排序适合地理区域。

CompareStr('', loInvariantLocale) 只是字符串中字符的逐字节比较。CompareStr('', loUserLocale) 在内部调用 CompareString,因此它们除了 CompareString 可以接受的附加标志外,它们是相同的。它也是内联的,所以你不应该在直接调用 CompareString 和使用 CompareStr('', loUserLocale) 之间看到任何速度差异。


谢谢Craig, 我不确定是因为CompareStr的代码(汇编)没有引用CompareString,或者至少我没有注意到 :o) - Bourgui

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接