直接上源码,其实是仿照<string.h>库中的源码:
char* strstr(register char* str1, register char* str2)
{
register char* bp;
register char* sp;
if (!*str2)
return str1;
while(*str1)
{
bp = str1;
sp = str2;
do
{
if (!*sp)
return str1;
}while(*bp++ == *sp++);
str1++;
}
return 0;
}
解析:
一个知识点:
这里为什么使用register关键字?
原因是用来声明为寄存器变量。也为局部变量,只在声明它的函数内有效。它是保存在寄存器之中的。速度要快很多。
其他的好像就没有什么好说的。
收录于:
C语言|BSP开发|嵌入式软件|Linux驱动|笔试面试题汇总帖
来源:oschina
链接:https://my.oschina.net/u/4414849/blog/4892164