awesome c

2025-12-11 0 992

awesome c

精选的C好东西清单。此列表包含开源代码(由链接的开源定义定义)以及对物理资源而不是邪恶的卖方。

这是根据创意共享 – 属性共享许可证(SPDX Code CC-BY-SA-4.0 )发布的。您可以在许可证文件中找到其文本。

一个重要的说明:此项目并未索引任何C ++ – 相关的内容;仅考虑纯C的东西。

有关贡献者的注意:如果您想提出拉请请求,请先阅读drogruting.md。

内容

  • 人工智能
  • 基准测试
  • 构建系统
  • 编译器
  • 压缩
  • 并发和并行性
  • 加密
  • 数据库
  • 数据结构
  • 调试
  • 文档生成
  • 编辑
  • 可嵌入的脚本引擎
  • 框架
  • 游戏编程
  • 图形
  • 图形用户界面
  • 哈希
  • 学习,参考和教程
    • 在线参考资源
    • 初学者资源在线
    • 中间资源在线
    • 在线高级资源
    • 参考书
    • 初学者书籍
    • 中间书
    • 高级书籍
  • 链接和解析
  • 内存管理
  • 多媒体
  • 网络和互联网
  • 数值
  • 分析
  • 正则
  • 序列化
  • 源代码收集
  • 标准库
    • 模板库
  • 字符串操纵
  • 结构化文件处理
    • CSV
    • JSON
    • ini
    • 其他的
    • XML
    • yaml
  • 测试
  • 文本编辑器扩展
  • 工具
  • 公用事业
  • 网络框架
  • Windows环境

人工智能

计算机视觉,神经网,机器学习和其他类似内容。基本上,如果您的大学称其为AI,它将住在这里。

  • CCV-基于C的/缓存/核心计算机视觉库;现代计算机视觉。 BSD-3-Clause
  • Cranium-便携式,C99中的仅标题ANN图书馆。 MIT
  • FANN-快速人工神经网络图书馆;神经网络的实现。 GPL-2.0-only
  • Genann- C89中的简单ANN,没有其他依赖关系。 Zlib
  • 坎恩 – 两文件安图书馆。 MIT
  • libdeep-深度学习库。 BSD-3-Clause
  • M2CGEN-将经典的经典ML模型转换为具有零依赖性的本机C代码的CLI工具。 MIT
  • 草皮 – 嵌入式计算机视觉和机器学习库。 GPL-3.0-only

基准测试

比较不同芯片/系统架构中各个子系统的性能。

  • B63-轻型微基准测试工具C. Apache-2.0

构建系统

自动化建筑物和测试项目的工具。

  • Autotools – 也称为GNU构建系统(Automake,AutoConf,libtool …)是使用最广泛的构建系统之一(配置&& make)。 gpl-1.0或培训者
  • Autotools Project Skeleton-一个简单的自动工具骨骼(模板),以快速引导新项目。 BSD-2-Clause
  • CMAKE-跨平台的工具系列,旨在构建,包装和测试软件。 BSD-3-Clause
  • GNU Make-控制程序的可执行文件和其他非源文件的工具。 GPL-3.0-or-later
  • 梅森 – 非常快,用户友好的构建系统。基于忍者。 Apache-2.0
  • Premake-命令行实用程序,读取软件项目的脚本定义,并使用它为Visual Studio和GNU Make生成项目文件。其他目标也正在努力。 BSD-3-Clause
  • SCONS-使用Python的软件构建工具。 MIT
  • Xmake-跨平台构建实用程序。 Apache-2.0
  • Zproject-项目生成器和构建系统支持工具。 MPL-2.0

编译器

编译器以及编译器和编译相关的工具。

  • CCACHE-编译器高速缓存,旨在加快重新补偿。 GPL-3.0-or-later
  • Clang- LLVM的编译器。支持C11。 NCSA
  • CPROC-使用QBE作为后端的C11编译器。 ISC
  • Distcc-程序,允许构建可以在几台计算机之间分发。 GPL-2.0-or-later
  • 公司 – 提供基于图的中间表示形式,优化和适合在编译器中使用的组装代码生成的库。在同一许可证下附带示例C前端。 LGPL-2.1-only
  • GCC-提供C编译器作为其编译器集的一部分。支持C11。 GPL-3.0-or-later
  • PCC-尊敬的编译器。支持C99。各种许可证,全部开源。

压缩

  • BLOSC-非常快,多线程,元压缩机库。各种许可证,全部开源。
  • Brotli-通用无损压缩算法库。具有与放气相当的速度,但压缩比要高得多。 MIT
  • CLZIP -C版本的高质量数据压缩机LZIP(LZMA实现)。 GPL-2.0-or-later
  • Croaring -C实施咆哮的位图。 Apache-2.0
  • FITITESTATEENTROPY-两个高效的压缩编解码器针对现代CPU进行了优化。 BSD-2-Clause
  • 密度 – 超快速压缩库。 BSD-3-Clause
  • Heatshrink-用于嵌入式和实时系统的数据压缩/减压库。 ISC
  • fast_zlib-改进的Zlib,其运行速度快2至10倍。 BSD-3-Clause
  • FASTLZ-闪电般的无损压缩库(LZ77型)。可在小目标上嵌入,例如Arm Cortex-M家族。源代码可直接嵌入您的项目(一对H/C文件),无动态内存分配。 MIT
  • HuffandPuff-最小的Huffman编码器和解码器。公共领域。
  • libzip -C库,用于阅读,创建和修改邮政编码。 BSD-3-Clause
  • LIBBZIP2-无专利,高质量的数据压缩库。 BSD-4-Clause
  • 蜥蜴 – 以前是LZ5;具有快速减压的有效压缩机。以1000Mb/s的减压速度和更快的速度达到与ZIP和ZLIB相当的压缩比。 BSD-2-Clause
  • LZ4-库,用于极快的压缩算法。 BSD-2-Clause
  • LZO-快速数据压缩库。 GPL-2.0-or-later
  • PIXZ-平行,索引的XZ压缩机。 BSD-2-Clause
  • Shoco-小文本字符串的压缩机。 MIT
  • SIMDCOMP-简单的库,用于使用二进制包装来压缩整数列表。利用X86上的SIMD说明。 BSD-3-Clause
  • SMAZ-有效的字符串压缩库。 BSD-3-Clause
  • 南瓜 – 压缩抽象库,并配有一些公用事业。 MIT
  • Turbopfor-最快的整数压缩。 GPL-2.0-or-later
  • Turborle-最有效的运行长度编码。 GPL-2.0-or-later
  • Zip-真的很小的邮政编码档案库。 Unlicense
  • Zlib-巨大而又微妙的压缩库。 BSD-3-Clause
  • libarchive -libarchive是一种便携式,有效的C库,可以以各种格式读取和编写流档案。 BSD-3-Clause
  • Zlib-ng- Zlib替换,具有“下一代”系统的优化。 BSD-3-Clause
  • ZSTANDARD-快速,无损压缩算法,针对Zlib级或更好的压缩比的实时压缩方案。 BSD-3-Clause

并发和并行性

  • CCHAN-用于通道构造的小库,用于线程间通信。公共领域。
  • checkedThreads-一个简单的并行库,并为竞赛条件进行内置检查。 BSD-2-Clause
  • CK-并发原始,安全记忆填海机制和非阻滞数据结构。 BSD-2-Clause
  • FCFS RWLOCK-首先传达的首先读取器/作家锁定Posix线程。 CC0-1.0
  • LIBACO-快速且轻巧的c不对称的Coroutine库。 Apache-2.0
  • libconcurrent-使用Coroutines的并发编程库,用于C11。 BSD-3-Clause
  • LIBCSP-受CSP模型影响的高性能C库。 MIT
  • libdill-库,使结构化的并发编程变得容易。 MIT
  • LIBHL-实施线程安全API来管理一系列数据结构的库。还提供了一些支持功能和结构,用于并发和锁定编程。 LGPL-3.0-only
  • Liburcu-数据同步库,该库与内核数量线性缩放。 LGPL-2.1-or-later
  • 磨机 – 式同时发生。 MIT
  • OCLKIT-两文件的Opencl包装器。 GPL-3.0-or-later
  • OCL-MLA-OPENCL中级抽象。 BSD-3-Clause
  • OpenMP-旨在允许代码的轻松并行化的布拉格斯。标准(许可不适用)。
  • 打开MPI-消息传递接口实现。 BSD-3-Clause
  • PAL-用于数学,并行处理和数据移动的优化库。 Apache-2.0
  • PTH-用于多个执行线程的非抢先优先级计划的便携式实现。 GPL-3.0-or-later
  • pthreads -POSIX线程库。标准(无许可证)。
  • TinycThread-便携式,C11线程API的小实现。 Zlib

加密

主要是众所周知的密码算法或协议的库实现。

  • GNU SASL-简单身份验证和安全层的实现以及一些常见的SASL机制。 GPL-3.0-or-later
  • Gnutls-安全通信库,实施SSL,TLS和DTL。 LGPL-2.1-or-later
  • libgcrypt-通用密码图库,具有一系列可用的密码。 LGPL-2.1-or-later
  • OpenSSL- SSL和TLS协议的实现。还包括一个密码库。根据OPENSL许可证和SSLEAY许可获得双重许可。
  • liboqs-用于量子抗性的加密算法的库。 MIT
  • libsodium-现代且易于使用的加密库库。 MIT
  • libtomcrypt-相当全面,模块化和便携式加密工具包。公共领域。
  • MBED TLS-另一个加密实施。 Apache-2.0
  • Miracl-多重复整数和理性算术密码库;用于椭圆曲线密码学的SDK。 AGPL-3.0-or-later
  • RETTER-收集哈希功能,密码,工具,库以及与密码和安全有关的材料。公共领域。
  • S2N -C99 TLS/SSL协议的实现,旨在简单,快速且具有安全性作为优先级。 Apache-2.0
  • SPHLIB-各种哈希功能的实现集,包括几个加密功能。 MIT
  • Trezor -Crypto-嵌入式设备的重新优化的加密算法。 MIT
  • Bfish-单个包括ANSI -C Blowfish欧洲央行加密图书馆。公共领域。

数据库

使用C API的数据库和数据存储。

  • BerkeleydB-用于键值数据的高性能嵌入数据库库。 AGPL-3.0-only
  • DuckDB-带有C API的快速进程分析数据库。 MIT
  • EJDB2-可嵌入的JSON数据库引擎。 MIT
  • Groonga-带有全文搜索的柱状商店。 LGPL-2.1-only
  • Hiredis- Redis的简约客户库。 BSD-3-Clause
  • libmongoc-蒙哥多的高性能客户库。 Apache-2.0
  • LMDB-超快速,超紧凑的键值嵌入式数据存储。 OLDAP-2.8
  • MySQL-世界上最受欢迎的开源数据库。 GPL-2.0-only
  • PostgreSQL-强大的对象键合数据库系统。 PostgreSQL
  • REDIS-高级钥匙值商店。 BSD-3-Clause
  • Sophia-现代,可嵌入的键值数据库。 BSD-2-Clause
  • Sparkey-简单的常数密钥/值存储库。设计用于读取的较重的负载,这些负载量很大,大容量插入物。 Apache-2.0
  • SQLITE-独立,无服务器,零配置,交易SQL数据库引擎。公共领域。
  • UNQLITE-独立,无服务器,零配置,交易NOSQL引擎。 BSD-2-Clause
  • WhitedB-轻型数据库库,完全在主内存中运行。 GPL-3.0-or-later
  • FlashDB-一个支持键值和时间序列数据的超轻质数据库。 Apache-2.0
  • Tdengine-高性能,云本机时间序列数据库。 AGPL-3.0-only

数据结构

  • C-Macro-Collections-使用宏来生成简单的通用数据结构。 MIT
  • CLIST-简单且轻巧的动态阵列实现。 BSD-2-Clause
  • Collections -C-通用数据结构库。 LGPL-3.0-or-later
  • DS-通用数据结构和算法。 MIT
  • IGRAPH-图形处理库。 GPL-2.0-or-later
  • KDTREE-简单的库,用于与KD -Trees合作。 BSD-3-Clause
  • libavl-包含一系列自平衡二进制树的库。 GPL-3.0-or-later
  • libcdada- C(C ++后端)中的基本数据结构(列表,set,map,queue …)的小型,便携式,无宏观库(C ++后端)。 BSD-2-Clause
  • LIBLFDS-便携式无锁数据结构库。公共领域(更确切地说,无论您想要什么许可证)。
  • libsrt-软和硬实时数据结构。 BSD-3-Clause
  • List.H-单链接和双链接列表功能的实现。 GPL-3.0-only
  • m*lib-通用的库,但类型为AFE C容器。以仅标题实现。 BSD-2-Clause
  • 外地 – 一般参考分数数据结构的收集。 MIT
  • 包装架 – 任何所需宽度的紧密包装的无符号整数的随机访问阵列。具有SIMD优化的实现。 WTFPL
  • RB3PTR-红黑树。揭示几乎所有实施原始图,因此可用于诸如增强,多个兼容订购功能等方案。 MIT
  • uthash-单文件哈希表实现。 BSD-1-Clause
  • vector.h-打字列表的标题库。 MIT

调试

因为有时候我们都必须这样做。各种工具,可使调试更轻松或更好,以及可以更好地调试工作的库或代码。

  • c -reduce-工具,该工具采用具有感兴趣属性的大C文件,并自动生产具有相同属性的较小的C文件。旨在在复杂的代码中帮助创建最小的错误示例案例。 BSD-3-Clause
  • CBMC -C有界模型检查器;用于验证数组界,指针安全性和用户指定断言的工具。 BSD-4-Clause
  • CFlow-分析源文件的集合,并在程序中打印图表控制流。 GPL-3.0-or-later
  • 复杂性 – 测量源代码复杂性的工具。 GPL-3.0-or-later
  • CSCOUT-源代码分析仪和C程序的重构浏览器。 GPL-3.0-only
  • DDD-一系列命令行调试者的图形前端。 GPL-3.0-or-later
  • 调试 – 单个负数库,以便更轻松的“ printf调试”。 MIT
  • ESBMC-有效的基于SMT的有限模型检查器;用于验证单线程程序,用户断言,溢出以及指针/内存安全的工具。 Apache-2.0
  • GDB -GNU项目调试器。 GPL-3.0-or-later
  • LLDB -LLVM调试器。 NCSA
  • RR-记录非确定性执行以进行确定性调试的调试器。 BSD-2-Clause
  • Valgrind-动态分析工具范围,包括泄漏检查器。 GPL-2.0-only

文档生成

  • CXREF-在乳胶,HTML,RTF或SGML中生成文档。 GPL-2.0-only
  • Doconce-适度标记的标记语言,可用于生成一系列格式。 BSD-3-Clause
  • doxygen-用于从带注释来源生成文档的事实标准工具。可以生成各种格式。 GPL-2.0-only

编辑

Fancier,IDE型编辑器。如果您想要程序员的文本编辑器,请查看其他地方。此外,无论您使用什么,最有可能支持C。

  • Anjuta Devstudio -Gnome Ide。 GPL-2.0-only
  • 代码::块 – 可扩展的,可配置的IDE支持C. GPL-3.0-only
  • Codelite-跨平台IDE。 GPL-2.0-only
  • Geany-小而快速的IDE。 GPL-2.0-or-later
  • Kdevelop -Kde Ide。 GPL-2.0-only
  • Zinjai-简单,轻巧且功能丰富的IDE。 GPL-3.0-only

可嵌入的脚本引擎

当C不是正确的解决方案时,或者您需要更具动态的隔离引擎时:

  • DUKTAPE-可嵌入的JavaScript引擎,重点放在便携性和紧凑的足迹MIT
  • Metacall-支持Nodejs,JavaScript,Typescript,Python,Ruby,c#,Wasm,Java,Cobol等。 Apache-2.0

框架

提供数据结构和其他您期望的“现代”标准库的大型库。

  • APR- Apache便携式运行时;另一个跨平台实用程序功能的库。 Apache-2.0
  • C算法 – 共同算法和数据结构的收集。 ISC
  • CPL-通用管道库;一组库,旨在是一个全面,高效且健壮的软件工具包。 GPL-2.0-only
  • EFL-大量有用的数据结构和功能。各种许可证,全部开源。
  • GLIB-实用程序功能和结构库,旨在便携,高效且功能强大。 LGPL-2.1-only
  • KLIB-常见算法和数据结构的小且轻巧的实现。 MIT
  • libcork-实用功能和结构,为资源受限系统设计。可以嵌入。 BSD-3-Clause
  • Libnih-功能和结构的轻巧库。 GPL-2.0-only
  • LIBU-基本实用程序的小库,包括内存分配,字符串操纵和记录。 BSD-3-Clause
  • PBL-包含数据结构的大型公用事业库。 LGPL-2.1-or-later
  • plibsys-跨平台系统C库。零第三方依赖关系,仅使用本机系统调用。 MIT
  • QLIBC-简单而强大的库,设计为替代GLIB的替代品,同时专注于小小的光线。 BSD-2-Clause
  • SC- C. MIT的常见库和数据结构
  • Tbox-具有大量功能的多平台库。 Apache-2.0
  • PSPSDK- PSP Homebrew开发的开源SDK。各种许可证。

游戏编程

引擎,图书馆和其他有用的事情专门用于制作游戏。

  • Allegro-跨平台,视频游戏开发和多媒体库。 Zlib
  • AssetKit?3D资产进口商/出口商/utif库基于Collada/GLTF规格MIT
  • Astera -C99 Cross Platform 2D游戏库MIT
  • CGLM-?优化C. MIT的OpenGL/Graphics Math(GLM)
  • Chipmunk2D-快速轻巧的2D游戏物理库。 MIT
  • CMT -CM?c绑定/包装器,用于苹果金属图形框架。 MIT
  • Corange- BSD-2-Clause C中的游戏引擎
  • CSFML- SFML的结合。 Zlib
  • Darkplaces- Quake2引擎的修改版本。 GPL-2.0-only
  • 环氧树脂 – 用于处理OpenGL功能指针管理的库。 MIT
  • Exengine -C99中带有启动模板的3D游戏引擎。 MIT
  • FLECS-为C89和C99 MIT编写的多线程实体组件系统
  • Freecell求解器 – 用于自动求解Freecell的库和命令行程序集和卡片纸牌的一些类似变体。 MIT
  • FreeGlut-替代OpenGL实用程序工具包。允许使用OpenGL上下文创建和管理Windows。 X11
  • GLFW-用于创建使用OpenGL上下文的Windows的多平台库。 Zlib
  • ioquake3 -Quake3发动机,最后释放。 GPL-2.0-only
  • Kazmath-游戏数学库。 BSD-2-Clause
  • Libao-具有各种输出的跨平台音频库。 GPL-2.0-or-later
  • LIBLG-纯C99游戏网络库,用于构建简单而优雅的跨平台多人端端服务器解决方案。 Apache-2.0
  • MATHC- 2D和3D编程的数学库。 ZLib
  • ORX-便携式,轻巧,基于插件的,数据驱动的,面向2D的游戏引擎。 Zlib
  • 地震 – 地震引擎。 GPL-2.0-only
  • Quake2 -Quake2发动机。 GPL-2.0-only
  • Raylib-简单易用的库,可学习视频游戏编程。 Zlib
  • retroarch- libretro的参考前端。 GPL-3.0-only
  • SDL2-跨平台库旨在通过OpenGL提供低级访问音频,键盘,鼠标,操纵杆和图形硬件的访问。 Zlib
  • SDL-GPU-用于高性能的库,现代2D图形。基于SDL。 MIT
  • sigil-声音,输入和图形集成库;其他图书馆做所有这些事情的简单替代方法。各种许可证,全部开源。
  • Uastar-最小A*实施。 ZLib

图形

c中图形的程序操作;如果要制作GUI,则图形用户界面部分具有您的需求。

  • AssetKit?3D资产进口商/出口商/utif库基于Collada/GLTF规格MIT
  • 开罗 – 2D图形库。 LGPL-2.1-onlyMPL-1.1
  • CMT -CM?c绑定/包装器,用于苹果金属图形框架。 MIT
  • Giflib-用于阅读和编写GIF图像的库。 MIT
  • 石墨烯 – 图形数据类型的薄层。 MIT
  • Heman-涉及高度图,正常地图,距离字段等的图像实用程序的微小库。 MIT
  • Libcaca -ASCII渲染器用于终端界面。 WTFPL
  • LIBGD-程序员动态创建图像的库。 MIT
  • LibimageQuant-小型便携式库,用于将RGBA图像高质量转换为8位索引颜色图像。 GPL-3.0-or-later
  • libjpeg -turbo-更快的库,用于阅读和编写JPEG文件。各种许可证。
  • libpng-官方PNG参考库。 Libpng
  • Librsvg-库使用开罗渲染SVG文件。 LGPL-2.1-or-later
  • libsixel-实施Sixel协议的库,允许在您的终端中使用精美的图形。 MIT
  • libspng-读取和编写png文件的较简单界面。 BSD-2-Clause
  • libvips-图像处理库。 LGPL-2.1-or-later
  • libxmi-用于栅格2D矢量图形的功能库。 GPL-3.0-or-later
  • LightMapper-使用现有的OpenGL渲染器,用于灯光图烘烤的单文件库。公共领域。
  • 小CMS-颜色管理系统。它在ICC配置文件之间提供快速变换。 MIT
  • Mozjpeg-改进的JPEG编码器。 BSD-3-Clause
  • Nanovg-抗偏二维矢量绘图库在OpenGL顶部,用于UI和可视化。 Zlib
  • OpenGL-具有本机C结合的高性能图形的行业标准。各种许可证。
  • plutovg-独立的2D矢量图形MIT
  • 帆 – ⛵缺少的小而快速的图像解码MIT (不是机器)

图形用户界面

小部件工具包或旨在以类似方式使用的东西。

  • GTK+ – 跨平台小部件工具包。 LGPL-2.1-only
  • IUP-另一个跨平台小部件工具包。 MIT
  • Microui-小型即时模式UI库,用便携式ANSI C. MIT编写
  • NappGui-专业SDK使用C. MIT构建跨平台桌面应用程序
  • Nuklear-小,C89,单头小部件工具包。公共领域。
  • Tinyfiledialogs-简单对话框的单文件库。与许多其他工具包兼容。 Zlib
  • TK-基本小部件工具包。 TCL/TK的一部分。 TCL
  • Xforms Toolkit-专为Xwindow系统设计的小部件工具包。 LGPL-2.1-only
  • LVGL-带有易于使用的图形元素的嵌入式GUI,美丽的视觉效果和低记忆足迹。 MIT
  • Luigi- win32,X11和Essence的准则单头GUI库。 MIT

哈希

哈希函数实现用于Crypto目的。加密哈希可以在加密部分找到。

  • clhash-实施可笑的快速clhash哈希函数的库。仅在英特尔·哈斯韦尔(Intel Haswell)或更新的工作中工作。 Apache-2.0
  • Highwayhash-快速,强,simd使用哈希功能。还包含siphash的实现(尽管这较慢)。 Apache-2.0
  • SpookyHash-极快的哈希功能。 BSD-3-Clause
  • T1HA-快速正面哈希 – 便携式,快速哈希功能。 BSD-3-Clause
  • XXHASH-非常快速的哈希算法。有32位和64位品种。 BSD-2-Clause

学习,参考和教程

一般学习C编程的资源,或与C编程有关的一些有用的资源。

在线参考资源

  • 无锁存储器分配器的基准
  • C常见问题解答 – comp.lang.c经常询问问题
  • Linux的C/POSIX标准库实现的比较
  • C89标准草案
  • C99标准草案
  • C11标准草案
  • 找到最佳的64位模拟PRNG
  • SEI CERT C编码标准
  • tinyc.game-微型C游戏,您可以编译并运行http://ti*n*yc.gam*es MIT

初学者资源在线

  • 关于指针的教程
  • 关于便携式makefiles的教程
  • 建筑C项目
  • C编程Wikibook
  • “娱乐\’\’c简介c
  • 使用GDB学习C
  • memcpy vs memmove
  • POSIX线程编程教程(有点过时,但大多数仍然有效且有用)
  • GNU C编程教程(在线PDF)
  • 在c中模板
  • C程序员对内存的了解
  • Codeforwin:在线学习C编程,数据结构教程和练习
  • 学习C:免费和开源交互式C教程
  • 如何在C中编程文本冒险

中间资源在线

  • 您应该知道的8个GDB技巧
  • 10个C99技巧
  • 全面的MPI教程资源
  • 构建自己的文本编辑器
  • 潜入并发:尝试静音和原子
  • 通用C参考计数
  • 如何编写便携式C而不使您的构建复杂化
  • openMP简介(视频)
  • OpenMP教程(用于OpenMP3标准)
  • MPI教程
  • 可扩展C-写大规模分布式c
  • C语言的一些未知功能或技巧
  • 每个C程序员对不确定的行为都应该知道什么

在线高级资源

  • C中的高级元编程
  • 关于实施和调试Malloc,Free,Calloc和Realloc的快速教程
  • 有点twitdling hacks
  • 为C编程语言实施智能指针
  • c中的内联功能
  • C中的元编程自定义控制结构
  • 解决C宏的临时存储问题
  • 一些c的黑暗角落
  • 编写有效的C和C代码优化
  • 在纯C99中编译代数数据类型

参考书

  • C:参考手册5E- C99的完整参考书。
  • C中的2E- C11的简明参考书。
  • C袖珍参考 – C99的简明参考书。
  • C编程语言2E-其创作者的原始书籍。

初学者书籍

  • C Primer Plus 6E- C11中有关编程的完整教程。
  • C编程:一种现代方法 – 学习C的基础知识的出色书籍。
  • 首先c-学习学习的“首先”样式书。

中间书

  • 21世纪c-良好的第二个编程书。
  • 理解和使用C指针 – 对指针的深入资源。
  • Zeromq-用于将Zeromq与C一起使用。

高级书籍

  • 专家C编程:深度C秘密 – 有趣,深入而有趣的C.
  • 现代C,第三版:涵盖C23标准 – 在现代C中,第三版您将学习使用最新工具和技术来利用C的全部潜力。

链接和解析

专门用于词汇分析(或词法)和句法分析(或解析)的库。

  • Flex-快速词汇分析仪生成器。 BSD-2-Clause
  • GNU BISON-通用解析器发生器,将带注释的无上下文语法转换为一系列解析器。 GPL-3.0-or-later
  • 锤子 – 二进制格式的解析器组合。 GPL-2.0-only
  • MPC-解析器组合库。 BSD-2-Clause
  • 猫头鹰 – 可见下降语言的解析器生成器。 MIT
  • RE2C -Lexer Generator,生产快速的Lexers,可访问其内部。公共领域。

内存管理

无论是不同,更快的杂物还是彻底的垃圾收集,与管理C内存有关的任何事情都生活在这里。

  • Boehm GC-用于C的垃圾收集。各种许可证,全部开源。
  • Jemalloc-强调避免分裂和可扩展并发支持的Malloc实施。 BSD-2-Clause
  • 无锁存储器分配器 – 有效的内存分配器。 GPL-3.0-or-later
  • libcsptr-智能指针MIT
  • rpmalloc-线程,快速内存分配器,自然对齐在32字节边界上。公共领域。
  • Talloc-带有破坏者的分层,参考计数池系统。 LGPL-3.0-or-later
  • TLSF-两级分离拟合分配器;通用的动态内存分配器旨在满足实时要求。最新实施。 BSD-3-Clause

多媒体

  • Aubio-音频和音乐分析的库。 GPL-3.0-or-later
  • FFMPEG-完整的跨平台解决方案,以记录,转换和流音频和视频。 LGPL-2.1-or-later
  • GSTREAMER-音频和视觉媒体的框架。 LGPL-2.1-or-later
  • libmpv-音乐播放库。 GPL-2.0-or-later
  • libsndfile-用于读取和编写声音文件的库。支持许多格式。 LGPL-2.1-onlyLGPL-3.0-only
  • libsoundio-用于跨平台,实时音频输入和输出的库。有一系列的后端。 MIT
  • LIBVLC-完整的多媒体库,用于音频和视频编码,解码,播放和流媒体。 GPL-2.0-only
  • lodepng-简单的PNG图像解码器和编码器,不需要其他依赖项。 BSD-3-Clause
  • minimp3-轻型mp3解码器单头库。 CC0-1.0
  • 配子 – 轻巧的音乐DSP库。 MIT

网络和互联网

低级网络和与互联网有关的东西。如果您想要更全面和高级的东西,则可能需要Web Frameworks部分。

  • ASNLC- ASN.1规格的编译器中的C源代码。 BSD-2-Clause
  • CHL -C超文本库 – GPL-3.0-only中编写Web应用程序的库
  • CZMQ- Zeromq的高级结合。 MPL-2.0
  • Dyad.C-轻巧,轻松,异步网络库。 MIT
  • GNU ADNS-高级,易于使用,具有异步的DNS客户库和实用程序。 GPL-3.0-or-later
  • C99中的Gumbo -Parser -HTML5解析库。 Apache-2.0
  • H20-新一代HTTP服务器。 MIT
  • LLHTTP -HTTP请求/响应解析器。 MIT
  • LDNS-简化DNS编程的库。 BSD-3-Clause
  • LIBCURL-客户端URL传输库,支持广泛的格式。 curl
  • libetpan-邮件库为IMAP,SMTP,POP和NNTP提供有效的网络。 BSD-3-Clause
  • libev-又一个事件循环。 BSD-2-Clause
  • Libevent-网络服务器的事件循环更换。 BSD-3-Clause
  • libhttpd-库将基本的Web服务器功能添加到应用程序或嵌入式设备。 GPL-2.0-only
  • LIBHV-跨平台事件循环库。 BSD-3-Clause
  • LIBIDN- StringPREP,PUNYCODE和IDNA规范的实现。 GPL-3.0-or-later
  • libmicrohttpd-小型库,可以轻松运行HTTP服务器作为另一个应用程序的一部分。 LGPL-2.1-or-later
  • libnl libnl是一个库的集合,可以在Netlink协议中证明API(替换IOCTL)。它的主要用途是与Linux内核进行通信,修改网络状态(接口,路由等…)。 LGPL-2.1-only
  • Libonion -HTTP服务器库,旨在易于使用。 Apache-2.0
  • LIBPCAP -API提供了各种内核数据包捕获机构。 BSD-3-Clause
  • Libquickmail-图书馆旨在为开发人员提供一种从其应用程序发送电子邮件的方法。支持多个至/cc/bcc的收件人和附件,而无需限制。 GPL-3.0-or-later
  • libsagui-用于跨平台HTTP服务器的库。 LGPL-3.0-or-later
  • libuhttpd-基于libev和http -parser的嵌入式linux的非常灵活,轻巧和完全异步的HTTP服务器库。 MIT
  • libvncserver-跨平台库以实现VNC服务器和/或客户端功能。 GPL-2.0-or-later
  • libwebsock-易于使用且功能强大的Web套接字库。 LGPL-3.0-only
  • libzmq-核心Zeromq库,一个高性能异步消息库,旨在用于分布式或并发应用程序。 C API(后端C ++) GPL-3.0-or-later静态链接异常
  • LWAN-实验,可扩展,高性能HTTP服务器。 GPL-2.0-only
  • Mongoose-嵌入式Web服务器。 GPL-2.0-only
  • MQTT -C-用于嵌入式系统和PC的便携式MQTT C客户端。 MIT
  • Nanomsg-基于C的Zeromq实施。 MIT
  • nng-纳米格 – 隔离生成 – 轻量级无经纪消息传递。 MIT
  • OSIP-无需其他依赖项的SIP实施。 LGPL-2.1-or-later
  • Silgy-用于C/C ++项目的异步HTTP(S)发动机。 MIT
  • Socket99 -C99包装器用于BSD插座API。 ISC
  • Twitc-迷你库,用于与Twitter Oauth API互动。 MIT
  • 尿布 – 严格符合RFC 3986符合的URI解析和处理库。 BSD-3-Clause
  • WSALE- WESTOCKECT库。如RFC 6455 MIT ,实现WebSocket协议的版本13。
  • Zyre-基于接近的对等应用程序的框架。 MPL-2.0

数值

  • Apophenia-统计和科学计算的库。 GPL-2.0-only
  • ARB-任意推测间隔算术的库。 LGPL-2.1-or-later
  • 地图集 – 自动调整线性代数软件。 BSD-3-Clause
  • clblas-用opencl编写的blas函数。 Apache-2.0
  • CMATHL-具有各种数学功能的数学库,具有CMAKE构建支持。寻求接近可移植性的C89/C90。 MIT
  • 古巴 – 用于多维数值集成的库。 LGPL-3.0-only
  • FFT-C-从Netlib的FftPack转换高性能的傅立叶;用用户友好MIT包裹
  • FFTW-西方最快的傅立叶变换;高度优化的快速傅立叶变换例程。 GPL-2.0-or-later
  • Flint-数字理论的快速库;一个支持算术的库,其中包括数字,多项式,功率序列和矩阵等。 GPL-2.0-or-later
  • GLPK- GNU线性编程套件;旨在解决大规模线性编程,混合整数编程和其他相关问题的软件包。 GPL-3.0-or-later
  • GMP -GNU多精度算术库;一个任意过度算术的库。 GPL-2.0-onlyLGPL-3.0-only
  • GNU MPC-复杂数字算术的库。 LGPL-3.0-or-later
  • GNU MPFR-任意浮点算术的库。 LGPL-3.0-or-later
  • GNU MPRIA-用于多精确合理间隔算术的便携式数学库。 GPL-3.0-or-later
  • GSL- GNU科学库;一个复杂的数值库。 GPL-3.0-only
  • 亲吻FFT-简单快速傅立叶变换库。 BSD-3-Clause
  • 拉帕克 – 拉帕克的接口。 BSD-3-Clause
  • libtommath-便携式,数字理论,多精确整数库。支持代数,数字操纵,模块化减少和各种数字理论例程。公共领域。
  • LibTompoly-多项式相关的数学库。公共领域。
  • Pari/GP-数字理论的计算机代数系统;包括C. GPL-2.0-or-later的编译器
  • PETSC-通过部分微分方程建模的科学应用的数据结构和例程套件。 BSD-2-Clause
  • SCS-分裂圆锥求解器;用于解决大规模凸锥问题的数值优化软件包。 MIT
  • SLEPC-用于解决并行计算机上稀疏特征值问题解决方案的库。 LGPL-3.0-only
  • Tomsfastmath-一组优化的数学操作(组装),适用于加密使用。公共领域。
  • 是的! – 快速,SIMD优化的数学库。 BSD-3-Clause

分析

  • Gperftools-收集了用于衡量和提高性能的实用程序。 BSD-3-Clause
  • GPROF-性能分析工具。 GNU Binutils的一部分。 GPL-3.0-or-later
  • Oprofile- Linux的统计分析器。可以介绍任何具有低开销的代码(包括内核!),而无需重新编译。 GPL-2.0-only
  • perf-基于Linux内核具有很多功能。 GPL-2.0-only

PDF

  • PDFIO -PDFIO是一个简单的C库,用于读取和编写PDF文件。 Apache-2.0

正则

  • Onigmo -Oniguruma的叉子,支持更高级的左右。 BSD-2-Clause
  • Oniguruma – Regex library supporting a wide range of encodings, and incorporating many security-oriented fixes. BSD-2-Clause
  • PCRE – Implementation of regexes identical to that of Perl 5. BSD-3-Clause
  • SLRE – Super Light Regular Expression library; a small implementation of a subset of Perl regex syntax. GPL-2.0-only
  • TRE – POSIX-compliant, feature-full regex library. BSD-2-Clause

序列化

  • binn – Binary serialization format, meant to be compact, fast and easy-to-use. Apache-2.0
  • c-capnproto – Implementation of the Cap\’n Proto serialization protocol. MIT
  • cmp – Implementation of the MessagePack serialization protocol. MIT
  • flatcc – FlatBuffers compiler and library. Apache-2.0
  • libavro – Implementation of the Avro data serialization system. Apache-2.0
  • mpack – Another implementation of the MessagePack serialization protocol. MIT
  • OPIC – Object Persistence in C; a revolutionary serialization framework, with matching on-disk and in-memory representations. GPL-3.0-or-later
  • protobuf-c – Implementation of Google Protocol Buffer. BSD-2-Clause
  • tpl – Small binary serialization library. MIT
  • xdr – External Data Representation; a standard for data serialization. Standard (no license applicable).
  • pbtools – Google Protocol Buffers C source code generator. MIT

Source Code Collections

Collections of small source code. If you want something big and integrated, check the Frameworks section.

  • CCAN – Modelled after Perl\’s CPAN, this is a big collection of code that does stuff.完整列表在这里。 Various licenses, all open source.
  • clib – Something of a package manager. Comes with a bunch of libraries of its own. MIT
  • gnulib – Collection of common GNU code. Various licenses, all open source.
  • libdjb – Collection of libraries doing various things. (Apparently) public domain.
  • mmx – Collection of single-header libraries. Various licenses, all open source.
  • par – Bunch of single-file libraries. MIT
  • Snippets – Useful code snippets and header-only libraries. Public domain.
  • stb – Range of single-file libraries. Public domain.
  • tinyheaders – Collection of header-only libraries, primarily oriented toward game development. Zlib
  • zpl – C99 cross-platform header-only library with many goodies. [ BSD-3-Clause , Unlicense ][BSD-3-Clause, Unlicense]

Standard Libraries

Implementations of the (standard-mandated) C standard library.

  • Bionic – Google\’s standard library, developed for Android. BSD-3-Clause
  • cloudlibc – Standard library based on the concept of capability-based security. BSD-2-Clause
  • dietlibc – Standard library designed for the smallest possible binaries. GPL-2.0-only
  • glibc – The GNU C Library; an implementation of the standard library. LGPL-2.1-only .
  • musl – Standard library, compatible with POSIX 2008 and C11. Designed for static linking. MIT
  • PDCLib – The Public Domain C Library. Implements most of C99 and some of C11. CC0-1.0
  • uClibc-ng – Small C library for developing embedded systems. LGPL-2.1-or-later

Template libraries

  • CTL – C CONTAINER TEMPLATE LIBRARY (CTL) MIT

String Manipulation

  • bstring – The Better String Library. BSD-3-Clause
  • ICU – International Components for Unicode; a library for Unicode support. ICU
  • levenstein.c – Levenstein distance algorithm implementation. MIT .
  • libunistring – Library for manipulating Unicode strings. LGPL-3.0-only
  • libgiconv – Text conversion library. LGPL-2.1-only
  • librope – UTF-8 rope (\’heavy\’ string) library. MIT
  • SDS – Simple Dynamic Strings; a library for handling strings in a simpler way, but one that is compatible with normal C string functions. Available via clib. BSD-2-Clause
  • stmr.c – Porter Stemmer algorithm implementation. MIT
  • str – Yet another string library for C language. BSD-3-Clause
  • StringZilla – Up to 10x faster SIMD and SWAR-accelerated string search, sort, hashes, edit distances, alignments, and generators. Apache-2.0
  • utf8.h – Single-header UTF-8 library, designed to mimic C-style string functions. Public domain.
  • utf8proc – Library for processing UTF-8 data. MIT

Structured File Processing

This includes libraries for things like XML, JSON, CSV, and other similar formats.

CSV

  • libcsv – Simple, streaming CSV parser. LGPL-2.1-or-later

JSON

  • Jansson – Library for encoding, decoding and manipulating JSON. MIT
  • jfes – JSON For Embedded Systems; simple JSON engine without any dependencies. MIT
  • jsmn – Minimalistic JSON parser. MIT
  • json – Simple, low-memory-use JSON parser. MIT
  • json-c – Easily work with JSON in C. Comes with a reference-counted object model, and aims for conformance with RFC 7159. MIT
  • json.h – Single-file non-streaming JSON parser. Unlicense
  • parson – Two-file, C89-compatible JSON parser. MIT
  • WJElement – Advanced JSON manipulation library, with support for JSON Schema. LGPL-2.0-or-later or LGPL-2.1-or-later or LGPL-3.0-or-later
  • YAJL – Fast streaming JSON parser library. ISC

ini

  • inih – Small and simple INI file parser, good for embedded systems. BSD-3-Clause
  • iniparser – Parser for .ini files. MIT
  • libconfini – Yet another INI parser. GPL-3.0-only
  • minIni – Small and portable INI parser. Apache-2.0

其他的

  • libbson – BSON utility library. Apache-2.0
  • libcbor: CBOR protocol implementation for C and others. MIT
  • libconfuse – Small configuration file parser library. ISC
  • libelf – Simple library for parsing ELF files. MIT
  • libucl – Universal configuration library parser. BSD-2-Clause
  • libxo – Allows an application to generate plain text, XML, JSON and HTML output using a common set of function calls. The application decides at runtime what output style should be produced. BSD-2-Clause

XML

  • Expat – Stream-oriented XML parser.麻省理工学院
  • libxml2 – Standards-compliant, portable XML parser.麻省理工学院
  • xml – Simple, low-memory-use XML parser / tokenizer. MIT

yaml

  • libYAML – YAML 1.1 parser and emitter. MIT

信号处理

  • libsigrok – signal analysis software suite that supports various device types (such as logic analyzers, oscilloscopes, multimeters, and more). [ GPL ][GPL]

测试

  • CHEAT – Simple unit testing framework. BSD-2-Clause
  • Check – Unit testing framework. LGPL-2.1-only
  • ciut – A modern minimal hassle unit test framework. MIT
  • clar – Clear and simple unit testing framework. MIT
  • CMock – Mock/stub generator. MIT
  • cmocka – Unit testing framework with support for mock objects. Apache-2.0
  • Criterion – KISS, non-intrusive test framework. MIT
  • ctest – Yet another unit testing framework. Apache-2.0
  • CUnit – Another unit testing framework. LGPL-2.1-or-later
  • greatest – Unit testing library in one file, with no memory allocation. ISC
  • minctest – Unit testing microlibrary. BSD-3-Clause
  • munit – Small unit testing framework. MIT
  • Nala – A test framework for C projects. MIT
  • Rexo – Framework for C89/C++ featuring automatic registration of tests and a polished API. Unlicense
  • Tau – A Micro Unit testing framework for C/C++ (~1k lines of code). Includes a rich set of assertion macros, supports automatic test registration and can output to multiple formats, like the TAP format or JUnit XML. Supported on Linux, macOS, FreeBSD, and Windows. MIT
  • theft – Property-based testing (similar to Quickcheck). MIT
  • Unity – Simple unit testing framework. MIT
  • utest – Single-header unit testing library. Unlicense

Text Editor Extensions

While practically any decent programmer\’s text editor supports C, there are some extensions that make it more pleasant. These are labelled by editor.

  • CCompletion – Notepad++ autocompletion plugin. Works with all identifiers recognized by Ctags. This is a download link. GPL-2.0-or-later
  • CEDET – Collection of Emacs Development Environment Tools; designed to provide IDE-like features to Emacs.内置。 GPL-3.0-or-later
  • Flycheck – Modern syntax checking for Emacs. For C, it can use either GCC or Clang as a back-end. GPL-3.0-or-later
  • Neomake – Async :make and linting framework for Neovim/Vim. MIT
  • Syntastic – Syntax checking and linting for Vim. WTFPL
  • YASnippet – Emacs code template system, with C templates for common snippets. GPL-3.0-or-later
  • YouCompleteMe – Code completion engine for Vim. GPL-3.0-only

工具

Useful programs to help you write and debug C code which are not editors, libraries or compilers.

  • Artistic Style – Fast and small automatic source code formatter that supports C. LGPL-3.0-only
  • address-sanitizer – Fast memory error detector. Apache-2.0
  • bcc – A byte array generator to import binary files directy from C in the spirit of xxd. ISC
  • c – Compile and execute C \”scripts\” in one go on the command line. Also has shebang support. MIT
  • c99sh – Run C files using hash-bang. BSD-2-Clause
  • cdecl – Online service to translate C declarations into English and vice versa. Public domain.
  • cinclude2dot – Graphs include dependencies in a project using Graphviz. GPL-1.0-or-later or GPL-2.0-or-later or GPL-3.0-or-later
  • ClangCheck – Static analysis tool, designed to work with Clang. NCSA
  • conan.io – Something of a package manager for C. MIT .
  • Cppcheck – Static analysis tool. Despite the name, works well with C. GPL-3.0-or-later
  • Glade – RAD tool to enable quick development of GTK+ GUIs. GPL-2.0-only
  • GMSL – GNU Make Standard Library; a collection of additional functionality for GNU Make. BSD-3-Clause
  • GNU Global – Source code tagging tool. GPL-3.0-only
  • GPP – General-purpose preprocessor. More versatile than the C preprocessor, but more flexible than m4. LGPL-3.0-or-later
  • Highlight – Converts source code to formatted text with nice highlighting. GPL-3.0-only
  • include-what-you-use – Helps find unecessary inclusions and make suggestions for fixing them. Based on LLVM/Clang (and only works with it). NCSA
  • incbin – Include binary files in your C/C++ applications with ease Unlicense
  • indent – Formats C source code automatically to make it easier to read. Also converts from one style of source to another. GPL-3.0-or-later
  • SMACK – Modular software verification toolchain and a self-contained software verifier. Currently only works with programs compiled using Clang. MIT
  • unifdef – Removes #ifdef and #if directives with their delimited text without touching any other part of the file. BSD-3-Clause or BSD-2-Clause

公用事业

A \’catch-all\’ category for anything that doesn\’t fit well anywhere else.

  • ApeTagLibs – Library for working with APEv2 tags. MIT
  • argparse – Command-line argument parsing library, inspired by Python\’s argparse module. MIT
  • attr – Commands for manipulating filesystem extended attributes. GPL-2.0-or-later
  • bfd – Library for manipulating binary object files. Part of GNU binutils. GPL-3.0-or-later
  • Caffeine – Library for building daemons and services for Linux and FreeBSD systems. LGPL-2.1-or-later
  • CException – Implementation of exceptions. MIT
  • CommonMark – Implementation of the CommonMark spec.
  • cosmopolitan – fast portable static native textmode containers (build C programs for Linux\\Mac\\Windows in one go) Variety of licenses, all open source.
  • cpu_features – Get CPU features at runtime. Apache-2.0 .
  • CRIU – Checkpoint/Restore In Userspace; a software tool (with a C API) for \’freezing\’ a running application to disk, then restoring it. GPL-2.0-only or LGPL-2.1-only
  • D-Bus – Simple way for applications to talk to one another. AFL-2.1 or GPL-2.0-or-later
  • Discount – Simple implementation of a Markdown parser. BSD-3-Clause
  • dlx – Implementation of Knuth\’s Algorithm X, with example solvers. GPL-3.0-or-later
  • docopt.c – Implementation of a command-line option parser. MIT
  • dyncall – Another foreign function interface library. MIT
  • GNU FreeIPMI – In-band and out-of-band IPMI implementation. GPL-3.0-only
  • GNU gperf – Perfect hash function generator, given a list of strings. Outputs C code. GPL-3.0-or-later
  • GNU Libffcall – Collection of libraries for building foreign function interfaces. GPL-3.0-or-later
  • Hoedown – Fully standards-compliant, extension-supporting, UTF-8 aware, fast Markdown parser. MIT
  • Kitsune – Efficient, general-purpose framework for dynamic software updating. LGPL-3.0-or-later
  • libCello – Library introducing higher-level programming to C. BSD-3-Clause
  • libcmark – Library for parsing the CommonMark dialect of Markdown. BSD-2-Clause
  • libcoap – Implementation of the Constrained Application Protocol. GPL-2.0-or-later or BSD-2-Clause
  • libcox – Library which permits cross-platform system calls and standard utilities across different operating systems. BSD-2-Clause
  • libffi – Portable foreign-function interface library. MIT
  • libgeohash – Pure C implementation of the Geohash algorithm. BSD-3-Clause
  • libgit2 – Portable implementation of the Git core methods, provided as a re-entrant linkable library. Custom license.
  • libgss – Generic Security Service. GPL-3.0-or-later
  • libimobiledevice – Cross-platform protocol library to communicate with iThings. LGPL-2.1-or-later
  • libnfc – Platform-independent Near-Field Communication library. LGPL-3.0-only
  • libpostal – Library for parsing and normalization of street addresses around the world. Powered by statistical NLP and open geo data. MIT
  • libtrading – Implementation of network protocols for communicating with exchanges, dark pools and other trading venues. Supports FIX, FIX/FAST and many proprietary protocols. BSD-2-Clause
  • libusb – Provides generic access to USB devices. LGPL-2.1-or-later
  • libuv – Cross-platform asynchronous I/O. MIT
  • libvldmail – Your friendly email validation library. No external dependencies (not even regexps). WTFPL
  • linenoise – Small, self-contained alternative to readline and libedit. BSD-2-Clause
  • libXDGdirs – An implementation of XDG Base Directory Specification MIT
  • MegaMimes – Library for getting the MIME types of a file. MIT
  • ncurses – Coloured terminal UI library. MIT
  • netbsd-curses – Simplified and small version of ncurses, with the same interface. BSD-3-Clause
  • nope.c – Ultra-light software platform for scalable server-side and networking applications (think node.js for C programmers). GPL-2.0-only
  • obj.h – A single-header supports OOP in pure C. MIT
  • parg – A single-file reimplementation of getopt with better defaults. CC0-1.0
  • pbc – Protocol buffers library. MIT
  • progressbar – Easy-to-use library for displaying text progress bars. BSD-3-Clause
  • rabbitmq-c – Client library for RabbitMQ. MIT
  • Ragel – DSL for state machines that compiles to C. GPL-2.0-only
  • rmw – safe-remove utility for the command line that can purge items from your waste directories after x number of days. GPL-3.0-or-later
  • Rogueutil – Cross-platform library for creating text-based user interfaces (TUI) Apache-2.0
  • sort – Collection of sorting routines, which type-specialize at compile-time with a user-defined type. MIT
  • termbox – Library for writing text-based interfaces. MIT
  • tinyexpr – Tiny recursive-descent parser, compiler and evaluation engine for simple mathematical expressions. BSD-3-Clause
  • tm – ⏱ Timer and Timeline Utils for C. MIT
  • Tulip Indicators – Library of functions for technical analysis of financial data. LGPL-3.0-or-later
  • whereami – One-file library for locating the current executable on the file system. WTFPL
  • XLSX I/O – Cross-platform library for reading and writing .xlsx files. MIT
  • xlsx_drone – Fast Microsoft Excel\’s *.xlsx reader. MIT
  • zlog – Reliable, pure C logging library. LGPL-2.1-only
  • zproto – Protocol framework for ZeroMQ. MIT
  • Metalang99 – Full-blown preprocessor metaprogramming. MIT
  • Datatype99 – Algebraic data types for C99. MIT
  • EasyLogger – An ultra-lightweight, high-performance C/C++ log library. MIT

网络框架

Comprehensive and integrated solutions for building the next brilliant web application in C.

  • Concord – A Discord API wrapper library written in C. MIT
  • facil.io – Mini-framework for web applications. Includes a fast HTTP and Websocket server, and also supports custom protocols. MIT
  • kcgi – CGI and FastCGI library for C ISC .
  • KLone – Fully featured, multi-platform, web application development framework, targeted especially at embedded systems and appliances. BSD-3-Clause
  • Kore – Easy-to-use web application framework for writing scalable web APIs in C. ISC

Windows Environments

Technologies designed to bring Windows into the 21st century with respect to support for C.

  • Cygwin – Designed to emulate a POSIX-compatible environment extensively under Windows. Various licenses, all open source.
  • MinGW-w64 – Minimalist environment for C development on Windows with 64 bit support. Various licenses, all open source.
  • MSYS2 – Minimal SYStem 2; aims to provide support for a POSIX environment on Windows, with a package manager based on Arch Linux\’s pacman. Packages have individual licenses, otherwise, as MinGW and Cygwin.

下载源码

通过命令行克隆项目:

git clone https://github.com/oz123/awesome-c.git

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 awesome c https://www.zuozi.net/34161.html

extism
上一篇: extism
常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务