成熟的C语言标准库

5

我正在寻找一个库,用于C语言,能够提供至少一些我从C++和STL/Boost中真正想要的东西(我必须使用C,所以请不要提及"使用C++")

我需要以下内容:

  1. 动态字符串(自动增长和缩小)
  2. 一些列表(std::vector替代品)
  3. 类似于stringstream的东西(用于类型转换和缓冲区)

此外,它必须拥有成熟且开源的实现,并且必须是跨平台的(必须支持Windows、Linux和Mac)。

有什么推荐吗?


你的问题标题有误,你需要的是一个成熟的非标准 C 库。C 的标准库并不提供你所需的内容。 - Jonathan Leffler
我认为Jonathan是正确的,但我已经阅读了它。请告诉我一个可用的C数据结构库。 - Friedrich
4个回答

14

关于GTK中的GLib怎么样?


这看起来很有趣,你有使用它的经验吗?它是否易用且不太复杂? - Milan
抱歉,我没有任何相关经验。据我所知,为GNOME编写程序的“本地”方式是使用带有GLIB的C语言(而非C++)。此外,IRC客户端irssi(http://irssi.org)的作者也使用了这种方式。因此很多人正在使用它(但并不意味着每种情况下都是高质量的软件...) - Manuel
GLib非常易于使用。它非常一致,并且是更好的“免费”软件库之一。 - Friedrich
赞成,或者其他什么。glib很棒。 - unwind
好的,我想你们说服了我,glib 确实是我想要的(尽管在 Windows 下编译相当困难)。感谢建议。 - Milan
如果您有使用C工具集与此类库的某种方式,则可以为MSVC使用预编译包,无需自己编译。 - Friedrich

4
我建议使用Apache Portable Runtime。它体积小、移植性好、功能强大,在多个平台上支持Apache httpd至少可以做到这些。

2
您可以考虑在您的应用程序中嵌入一个动态语言运行时。Lua核心非常小,提供符合您要求的数据类型,是开源的,并且根据MIT许可证授权,因此它与FOSS和商业项目都兼容。
您不一定需要使用Lua编写的代码来获益,因为其C API提供了对其数据类型及其值的完全访问权限。但是,您可以随后将应用程序的某些逻辑移植到Lua中,以提高表达清晰度和使用函数作为一等值的动态语言编码的其他优点。

1

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接