此问题在此处已有答案:
11年前关闭了。
可能重复:
Container Class / Library for C
使用C++而不是C的一个主要原因是STL提供了非常方便的容器。但是,如果我想用纯C编写代码,而不必从头开始编写所有容器,我还有什么选择呢?
我听说过(但从未使用过)的一些方法是
- 油滑
- iMatix标准函数库
- 与Linux内核头文件不同的元素(例如list)
如果您对纯C语言(Ansi或其他语言)中的容器有任何意见和/或经验,我们将不胜感激。
此问题在此处已有答案:
11年前关闭了。
可能重复:
Container Class / Library for C
使用C++而不是C的一个主要原因是STL提供了非常方便的容器。但是,如果我想用纯C编写代码,而不必从头开始编写所有容器,我还有什么选择呢?
我听说过(但从未使用过)的一些方法是
如果您对纯C语言(Ansi或其他语言)中的容器有任何意见和/或经验,我们将不胜感激。
2条答案
按热度按时间xienkqul1#
我之所以推荐GLib,仅仅是因为它有一组很好的特性,而且相对成熟、稳定、可移植,使用广泛。
oxf4rvwz2#
您或库作者可以在每次要将容器用于不同类型时编写容器等,可能会将定义放入巨大的宏中,或者您可以将
void *
用于容器,失去了类型安全的所有希望,有时甚至失去了一些性能。(C的qsort
函数的效率可能远远低于C的sort
模板。)在C中无法获得C容器、迭代器和算法的等价物。我对Glib了解不多,而且您对Linux内核头文件中不同元素的引用有点含糊,您提到的Linux列表可能是您所得到的典型内容:没有类型安全,一组写得很好的函数,对每种数据类型命名不同。快速浏览一下iMatix,没有发现任何容器。