【问题标题】:Implementation of C string functions [closed]C字符串函数的实现[关闭]
【发布时间】:2015-04-10 14:51:06
【问题描述】:

我想知道字符串操作函数是如何在内部实现的,以便弄清楚它们的性能。有没有办法找出来?

我说的是 C++ 中以 null 结尾的 c 字符串(字符数组)和相关函数(strcat 等),如果这与它有关的话。

【问题讨论】:

  • 如果你使用 GCC 或 Clang 之类的东西和 libstdc++ 或 libc++,你可以查看源代码。
  • @chris,C 字符串函数未在 libstdc++ 或 libc++ 中定义
  • 这是一个有趣的例子How the glibc strlen() implementation works
  • 衡量他们的表现比试图根据源代码估计要容易得多。此外,您需要在实际应用程序中进行测量,而不仅仅是基准测试或理论分析——程序其余部分的调用模式和缓存使用情况可能会产生很大影响。
  • 你不会真的认为你可以提高他们的效率吧?

标签: c++ c arrays char


【解决方案1】:

有没有办法找出来?

使用来源,卢克

GNU libc 字符串函数的源代码可在Git repository 中轻松查看

您也可以查看其他免费软件或开源 C 库,例如newlibFreeBSDNetBSDOpenBSD、OpenSolaris 等。

【讨论】:

    【解决方案2】:

    如果您的全部目的是弄清楚性能,我认为您不需要知道它是如何实现的。您可以输入不同的数据并绘制图表并比较函数的执行方式。

    但是如果你需要研究这些函数是如何实现的,那么总会有源代码,你可以从互联网上获得不同 C++ 编译器的源代码(虽然不是所有的编译器)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-12-22
      • 1970-01-01
      • 2013-03-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-03
      相关资源
      最近更新 更多