strlen函数很简单,一个byte一个byte比下去就可以了。
但是如何能够加速呢?
看到了http://tsunanet.net/~tsuna/strlen.c.html
很神奇,说实话代码我没看懂。不过大概思想是明白的,就是4个byte组成一个int数,通过check这个int数判断这其中是否有\0。
不禁让我想起了那个计算一个int数的二进制表达有多少个1的快速算法:
分别取奇数位和偶数位,然后移位对其相加。
再取 得到这个数 的以2位为单位的,移2位,相加。
再将 得到这个数 ,移4位,相加。
依次类推……
好像来自《编程之美》
没有评论:
发表评论