我决定找到 2 个函数的速度:
- strcmp - string.h 中定义的标准比较函数
- xstrcmp- 一个具有相同参数并执行相同操作的函数,只是我创建了它。
这是我的 xstrcmp 函数:
int xstrlen(char *str)
{
int i;
for(i=0;;i++)
{
if(str[i]=='\0')
break;
}
return i;
}
int xstrcmp(char *str1, char *str2)
{
int i, k;
if(xstrlen(str1)!=xstrlen(str2))
return -1;
k=xstrlen(str1)-1;
for(i=0;i<=k;i++)
{
if(str1[i]!=str2[i])
return -1;
}
return 0;
}
我不想依赖 strlen,因为我想要用户定义的所有内容。
所以,我找到了结果。strcmp 每毫秒进行 364 次比较,而我的 xstrcmp 每毫秒只进行 20 次比较(至少在我的计算机上!)
谁能说出为什么会这样?xstrcmp 函数做了什么让自己变得如此之快?