因为我也曾经有过类似的需求
而写了一套一系列的 linked list 容器
https://github.com/kevin-dong-nai-jia/OpenGC3
更加注重在 性能的优化和代码的简洁性
目前以 MIT License 发布
我的实作与 Linux list_head 的差别如下:
1. 当前置定义 #define CC_STRICT
可以“完全遵守”使用 C99+ 标准规范
不使用任何 GCC C编译器的扩展语法
但是 Linux 的实作不能
2. 提供多种 list 的资料结构
包含 doubly/singly/exclusive-or list
但是 Linux 的实作只有第一种
3. 使用 non-intrusive 容器的设计
宣告和操作 list 变得非常地容易
只需要使用 ccdll(int) list;
这与 Linux 使用方式的有巨大的改进
4. 最重要的是
它优异的的设计使得它的效能可以
在处理极大量资料时大大提升
https://i.imgur.com/ehK1uDZ.png
5. 另一个最重要的是
它的多种测资已经通过 valgrind 的检查
不会造成内存外泄和非初始化资料存取
而且拥有详细的 documentations
描述每个操作的使用方法和宏依赖关系
这是 OpenGC3 专案被托管的地方
https://github.com/kevin-dong-nai-jia/OpenGC3
这是一个简易的范例
介绍如何使用 ccdll 对档案基于行的排序
./sort-by-lines <path-to-file> <strncmp-3rd-arg>
https://gist.github.com/kevin-dong-nai-jia/834e3d16c3c7f0f8496ef23945dbf7ca
希望你会喜欢 >皿<
喜欢并对你有帮助的话请帮我在上方点击一颗星星!
这会是我最棒的过年礼物(灿笑
※ 引述《takesi5200 (小咪)》之铭言:
: 问题(Question):
: 不好意思,.NET有List<T>集合,
: 可以很方便把资料放入集合里。
: 小妹因公司需求要在Linux平台上
: 也开发类似此方法。
: 请问Linux C有没有类似方法呢?
: 恳请个位高手指导,谢谢