gpt4 book ai didi

c - 如何编写更好的 strlen 函数?

转载 作者:太空狗 更新时间:2023-10-29 16:40:01 24 4
gpt4 key购买 nike

我正在阅读“Write Great Code Volume 2”,它显示了以下 strlen 实现:

int myStrlen( char *s )
{
char *start;
start = s;
while( *s != 0 )
{
++s;
}
return s - start;
}

书上说这种实现对于没有经验的 C 程序员来说是典型的。在过去的 11 年里,我一直在用 C 编写代码,但我看不出如何在 C 中编写比这更好的函数(我可以想到用汇编编写更好的东西)。在 C 中如何编写比这更好的代码?我查看了 glibc 中 strlen 函数的标准库实现,但我无法理解其中的大部分内容。我在哪里可以找到有关如何编写高度优化的代码的更好信息?

最佳答案

来自 Optimising strlen() ,Colm MacCarthaigh 的博文:

Unfortunately in C, we’re doomed to an O(n) implementation, best case, but we’re still not done … we can do something about the very size of n.

它提供了一个很好的例子,说明您可以朝着哪个方向努力以加快速度。和它的另一个引用

Sometimes going really really fast just makes you really really insane.

关于c - 如何编写更好的 strlen 函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6584340/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com