Решил найти скорости 2-х функций:
Вот моя функция 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, чтобы сделать себя такой быстрой?