我不确定下面的代码有多快。如果有人知道比这更快/优化的代码,请告诉我。
int xstrcmp(char *s1, char *s2)
{
while (*s1 == *s2++)
if (*s1++ == 0)
return (0);
return (*(const unsigned char *)s1 - *(const unsigned char *)(s2-1));
}
Use ::strcmp
而不是你自己的手卷版本。您的编译器供应商很可能有一个仅汇编版本,该版本使用特定于 CPU 的功能进行比较(例如,SSE4.2 有用于快速字符串比较的特殊指令。)例如,MSVC 版本是用汇编语言编写的,并使用更大的比较(整个字)而不是单个字符)尽可能多地使用特殊大小写未对齐的字符串开头/结尾(如果您安装了 VS2010,则它位于VC/crt/src/intel/strcmp.asm
.)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)