C 语言资源大全中文版
我想很多程序员应该记得 GitHub 上有一个 Awesome:XXX 系列的资源整理。awesome-c 是 koz.ross 发起维护的 C 语言资源列表,内容包括了:构建系统、编译器、数据库、加密、初中高的教程/指南、书籍、库等等。
Awesome 系列虽然挺全,但基本只对收录的资源做了极为简要的介绍,如果有更详细的中文介绍,对相应开发者的帮助会更大。这也是我们发起这个开源项目的初衷。
我们要做什么?
- 基于 awesome-c 列表,我们将对其中的各个资源项进行编译整理。此外还将从其他来源补充好资源。
- 整理后的内容,将收录在伯乐在线资源频道。可参考已整理的内容:
如何参与本项目?
如何为列表贡献新资源?
欢迎大家为列表贡献高质量的新资源,提交PR时请参照以下要求:
- 请确保推荐的资源自己使用过
- 提交PR时请注明推荐理由
资源列表管理收到PR请求后,会定期(每周)在微博转发本周提交的PR列表,并在微博上面听取使用过这些资源的意见。确认通过后,会加入资源大全。
感谢您的贡献!
本项目的参与者
注:名单不分排名,不定期补充更新
目录
构建系统
下面是一些 C 项目的自动化构建和测试工具。
- aimake:一个被设计来避免复杂配置的构建工具。GNU GPL3 或更高版本。官网
- Autoconf:一个可扩展的 M4 宏指令包,提供命令行脚本来自动配置软件源码包,是 Autotools 的一部分。GNU GPL3 或更高版本。官网
- Automake:一个自动生成符合 GNU 代码标准的 Makefile.in 文件的工具。需要与 Autoconf 配合使用,它也是 Autotools 的一部分。GNU GPL3 或更高版本。官网
- Jam:一个构建系统,它被设计的比make更加易用。隐式地理解 C 的构建规则。Jam License。官网
- Libtool:一个通用库支持脚本,是 Autotools 的一部分。GNU GPL3 或更高版本。官网
- Meson:一个非常快,用户友好的构建系统,基于 Ninja。Apache2.0。官网
编译器
加密
数据库
下面列出了基于 C API 的数据库和数据存储
文档生成
编辑器
这些是特别精致,IDE 类型的编辑器。如果你想要一个程序员的文本编辑器,看别的地方。此外,不管你选择哪一款编辑器,它都支持 C。
环境
下面列出了被设计来引领 Windows 进入支持 C 的 21 世纪的技术。
框架
这一节包括提供数据结构的大型库和你所期待“现代”的标准库。
游戏编程
引擎
这些作为 C 游戏编程代码的例子。
资源
这些是筛选过的,对游戏编程有用的库。
- Allegro:一个跨平台,视频游戏开发和多媒体库。zlib。官网
- Chipmunk2D:一个快且轻量级的 2D 游戏物理库。Expat。官网
- CSFML:一个用 C 封装的 SFML。zlib。官网
- FreeGLUT:一个替代性的 OpenGL 实用工具包。允许用 OpenGL 上下文创建和管理窗口。X11。官网
- GLFW:一个使用 OpenGL 上下文创建窗口的多平台库。zlib。官网
- libao:一个有多种输出的跨平台音频库。GNU GPL2.1及更高版本。官网
- RetroArch:libretro 的参考前端。GNU GPL3。官网
- SDL:一个跨平台库,通过 OpenGL 提供音频,键盘,鼠标,操纵杆和图形硬件的底层访问。zlib。官网
- SDL2:一个跨平台库,通过 OpenGL 提供音频,键盘,鼠标,操纵杆和图形硬件的底层访问。这是最新版本。zlib。官网
通用编程
图形
GUI
这些具体来说就是控件工具包
JSON
- Jansson:一个编码,解码和处理 JSON 的 C 库。Expat。官网
- jsmn:一个极简的 JSON 解析器。Expat。官网
- json-c:一个处理 JSON 的库。Expat。官网
- WJElement:高级 JSON 处理库,支持 JSON Schema。任意版本的 LGPL。官网
- YAJL:一个很快的 JSON 流解析 C 库。ISC。官网
学习、参考和指南
下面列出了学习 C 编程的资源,或者跟 C 编程相关的有用的东西。
在线
参考
初级
中级
高级
自学教程
实体书
参考资料
初级
中级
高级
多媒体
网络编程
Web框架
数值计算
并行编程
- cchan:一个线程间通信通道构建的小型库。公共领域。官网
- ck:并发原语,安全内存回收机制和非阻塞数据结构。FreeBSD。官网
- mill:用 C 写成的 Go 风格并发。X11官网
- MPICH:MPI 的另一种实现。MPICH licence。官网
- OpenMP:一组 C 编译指令,使其易于并行化代码。标准(许可不适用)。官网
- OpenMPI:一个消息传输接口实现。3-clause BSD。官网
- PETSc:一系列数据结构和例程,用于计算由偏微分方程建模的应用程序的可扩展并行解。FreeBSD。官网
- pth:一个非抢占式优先级调度多线程执行的可扩展实现。GNU GPL3 或者更高版本。官网
- pthreads:POSIX 线程库。标准(没有适用的许可)。官网
- SLEPc:一个在并行计算机中的解决大型,稀疏特征值问题的软件库。GNU LGPL3。官网
- TinyCThread:一个可扩展,小型的 C11 标准线程 API 实现。zlib。官网
正则表达式
有些人遇到问题时就会想:“啊,我知道了,我可以使用正则表达式”。于是现在他们有了两个问题。- Jamie Zawinski。
序列化
源码集锦
下面包含了一些小型源码集合。如果你想要大型且成熟的,看《框架》那一节。
- CCAN:模仿 Perl 的 CPAN,这是一个大的实用 C 代码集合。完整的列表在 这里。多种许可(所有都是免费软件)。官网
- clib:一个 C 软件包管理器,配备了一堆自己的库。 Expat。官网
- gnulib:通用 GNU 代码的集合。多种许可证,全部免费。官网
- libdjb:做各种事情的库的集合。(显然)公共领域。官网
标准库
下面包括了标准 C 库。
字符串处理
测试工具
文本编辑器扩展
在几乎任何像样的文本编辑器支持 C 之际,有一些扩展,让编辑器更加令人愉快。下面是根据编辑器分目录的。
Emacs
- CEDET:Collection of Emacs Development Environment Tools;给 Emacs 提供一种类似 IDE 的特点,是内建的。GNU GPL3 或更高版本。官网
- Flycheck:现代语法检查。对于 C,它可以使用 GCC 或者 Clang 作为后端。GNU GPL3 或更高版本。官网
- Yasnippet:一个模板系统,支持 C 的通用代码片段。GNU GPL3 或更高版本。官网
Vim
工具
下面是实用的程序列表,包括了帮助你编写和调试 C 代码的库或者编译器,不包括编辑器。
其他工具
下面是包罗万象的目录,主要是那些不适合放在其他目录的东西。
XML
“XML 是垃圾。真的,没有任何借口。XML 对人类不友好的,甚至对于电脑来说也是一场灾难。根官网 -Linus Torvalds
其他资源
有影响力的书
*具有广泛影响且值得阅读的 C 语言经典书籍。*
* 待补充
知名网站/博客
*值得关注的 C 语言技术站点和博客。*
中文
英文
微信公众号
* CPP开发者:专注分享 C/C++ 开发相关的技术文章和工具资源。