跳过正文

C语言资源大全中文版

·1961 字·10 分钟·
目录

C语言资源大全中文版

构建系统
#

下面是一些 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 官网

编译器
#

  • Clang:一个基于 LLVM 的 C 的编译器,支持 C11 标准。 NCSA 官网
  • CompCert:一个经过充分验证的 C 编译器。支持几乎所有的 C89 标准。 GNU GPL2.1 或更高版本。 官网
  • GCC:在它的编译器集合中提供了 C 编译器。支持 C11 和 OpenMP 的标准。 GNU GPL3 或更高版本。 官网
  • PCC:一个值得尊敬的 C 编译器,支持 C99 标准。 Various licenses,完全免费。 官网
  • TCC:一个迷你,速度快的 C 编译器,支持 C99(除了复杂的类型)。 LGPL2.1 官网

加密
#

数据库
#

下面列出了基于 C API 的数据库和数据存储

  • BerkeleyDB:一个高性能的嵌入式键值对数据库。 GNU AGPLv3 官网
  • Hiredis:一个极简的 Redis 客户端。 3-clause BSD 官网
  • LMDB:一个极快,极简的嵌入式键值对数据存储系统。 newOpenLDAP 官网
  • MariaDB:一个强壮,可扩展和可靠的 SQL 服务器,设计来作为 MySQL 的替代品。 3-clause BSD 官网
  • mongo-c-driver:一个高性能的 MongoDB 客户端。 Apache2.0. 官网
  • PostgreSQL:一个强大的对象关系数据库系统。 PostgreSQL licence 官网
  • recutils:一个工具和 C 库的集合,用于访问可编辑,纯文本的名为 recfiles 的数据库文件。 GNU GPL3 或更高版本。 官网
  • Redis:一个先进的键值对存储系统。 3-clause BSD 官网
  • sophia:一个现代,可嵌入的键值对数据库。 FreeBSD 官网
  • SQLite:一个自包含,无服务器,零配置,支持事务的 SQL 数据库引擎,包括 C 接口。公开领域。 官网
  • UnQLite:一个自包含,无服务器,零配置,支持事务的 NoSQL 数据库引擎,包括 C 接口。 FreeBSD 官网

文档生成
#

  • Cxref:生成 C 程序的文档,支持 LaTeX,HTML, RTF 或者 SGML 的格式。 GPL2.1 官网
  • DocOnce:一种朴素的标签标记语言,可以用来生成多种格式的文档。 BSD-3clause. 官网
  • Doxygen:一个事实上的标准工具,用于从注释的代码中生成 C 文档。能够生成多种格式的文档。 GNU GPL2.1 官网
  • GTK-Doc:一个从注释的代码中生成 C 文档的工具,支持 Autotools GNU GPL2.1(代码), GNU FDL1.1 官网

编辑器
#

这些是特别精致,IDE 类型的编辑器。如果你想要一个程序员的文本编辑器,看别的地方。此外,不管你选择哪一款编辑器,它都支持 C。

环境
#

下面列出了被设计来引领 Windows 进入支持 C 的 21 世纪的技术。

框架
#

这一节包括提供数据结构的大型库和你所期待“现代”的标准库。

  • APR:Apache Portable Runtime;另一个跨平台的实用函数库。 Apache2.0 官网
  • C Algorithms:一个常用算法和数据结构的集合。 官网
  • CPL:The Common Pipeline Library;一系列详尽,高效和强壮的软件工具包。 GNU GPL2.1 官网
  • EFL:一个大型实用数据结构和函数的的集合。多种许可证,完全免费。 官网
  • GLib:一个便携,高效和强大的实用函数和数据结构库。 GNU LGPL2.1 官网
  • GIO:一个现代和易用的 VFS API。[GNU LGPL2.1]。 官网
  • GObject:一个 C 的面向对象系统和对象模型。 GNU LGPL2.1 官网
  • libnih:一个轻量级的 C 函数和数据结构库。 GNU GPL2.1 官网
  • libU:一个提供基本实用函数的迷你库,包括内存分配,字符串处理和日志功能。 官网
  • PBL:一个包括实用函数,特色数据结构等的大型库。 GNU LGPL2.1及更高版本(库), GNU GPL2.1及更高版本(测试代码)。 官网
  • qlibc:一个简单且强大的 C 库,当我们想要小且轻的库时,可作为 Glib 的替代品。 qLib license (类似于 FreeBSD)。 官网
  • stb:一系列单文件 C 库。公共领域。 官网
  • libcstl:标准C语言通用数据结构和常用算法库。 官网

游戏编程
#

引擎
#

这些作为 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 官网

通用编程
#

  • klib:小且轻量级的常用算法和数据结构实现。 Expat 官网

图形
#

GUI
#

这些具体来说就是 控件工具包

JSON
#

  • Jansson:一个编码,解码和处理 JSON 的 C 库。 Expat 官网
  • jsmn:一个极简的 JSON 解析器。 Expat 官网
  • json-c:一个处理 JSON 的库。 Expat 官网
  • WJElement:高级 JSON 处理库,支持 JSON Schema。任意版本的 LGPL。 官网
  • YAJL:一个很快的 JSON 流解析 C 库。 ISC 官网

学习、参考和指南
#

下面列出了学习 C 编程的资源,或者跟 C 编程相关的有用的东西。

在线
#

参考
#

初级
#

中级
#

高级
#

自学教程
#

实体书
#

参考资料
#

初级
#

中级
#

高级
#

多媒体
#

  • FFMPEG:一个完整,跨平台的录音,转换和流化视频以及音频的解决方案。 GNU LGPL2.1 或更高版本,部分是 GNU GPL2.1 或更高版本。 官网
  • GStreamer:一个声音和可视化媒体的框架。 GNU LGPL2.1 官网
  • lodepng:一个简单的 PNG 图像解码器和编码器,不需要其他依赖。 3-clause BSD. 官网

网络编程
#

Web框架
#

数值计算
#

  • apophenia:一个用于统计和科学计算的库。 GNU GPL2.1 官网
  • ATLAS:自动调谐线性代数软件。 3-clause BSD 官网
  • BLAS:Basic Linear Algebra Subprograms;提供向量和矩阵操作的一系列操作。 BLAS license 官网
  • Cuba:一个计算多维的数值积分的库。 GNU LGPLv3 官网
  • FFTW:The Fastest Fourier Transform in the West;一个高度优化的快速傅立叶变换例程。 GNU GPL2.1 或更高版本。 官网
  • FLINT:Fast Library for Number Theory;一个支持算数,多项式,幂级数和矩阵等。 GNU GPL2.1 或更高版本。 官网
  • GLPK:GNU Linear Programming Kit;一个求解大规模线性规划,混合整数规划和其他相关问题。 GNU GPL3 或更高版本。 官网
  • GMP:GNU Multple Precision Arithmetic Library;一个支持任意精度计算的库。双重许可 GNU GPL2.1GNU LGPLv3 官网
  • GNU MPC:一个支持复杂数字计算的库。 GNU LGPL3 或更高版本。 官网
  • GNU MPFR:一个支持任意精度的浮点数计算库。 GNU LGPL3 或更高版本(大多数最近版本), GNU LGPL2.1 或更高版本(2.4.x 之前)。 官网
  • GNU MPRIA:一个支持多精度合理区间运算的可扩展数学库。 GNU GPL3 或更高版本。 官网
  • GSL:The GNU Scientific Library;一个精确的数值计算库。 GNU GPL3 官网
  • KISS FFT:一个非常快的傅里叶变换库。 3-clause BSD 官网
  • LAPACKE:一个 LAPACK 的 C 接口。 3-clause BSD 官网
  • PARI/GP:一个数论的计算机代数系统,包括 C 编译器。 GNU GPL2.1 或更高版本。 官网
  • PETSc:一系列数据结构和例程,用于计算由偏微分方程建模的应用程序的可扩展并行解。 FreeBSD 官网
  • SLEPc:一个在并行计算机中的解决大型,稀疏特征值问题的软件库。 LGPL3 官网
  • Yeppp!:非常快,SIMD 优化的数学库。 3-clause BSD 官网

并行编程
#

  • 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 代码的库或者编译器,不包括编辑器。

  • adlint:一个静态分析器。支持完全的 C89 标准和部分 C99 标准。 GNU GPL3 或更高版本。 官网
  • Artistic Style:一个支持 C 的小而快的自动化代码格式化工具。 GNU LGPL3 官网
  • address-sanitizer:一个很快的内存错误探测器。 Apache2.0 官网
  • biicode:一个现代的 C 依赖管理器。 Expat 官网
  • c:在命令行中编译和执行 C 脚本,也支持 shebang。 Expat 官网
  • c99sh:用 hash-bang 运行 C 文件。 FreeBSD 官网
  • CBMC:C Bounded Model Checker;一个检查数组边界,指针安全和用户自定义断言的工具。 Original BSD 官网
  • cdecl:一个在线服务,能够把 C 的声明翻译成英文,反向也可以。公共领域。 官网
  • cinclude2dot:在 C 项目中使用 Graphviz 的图像包含依赖。任官网 GNU GPL 版本(根据文件中的要求) 官网
  • Complexity:一个测量 C 代码复杂性的工具。 GNU GPL3 或更高版本。 官网
  • DDD:各种命令行调试器的图形前端。 GNU GPL3 或更高版本。 官网
  • fab:让每次构建都最优的构建系统。 GNU GPL3 官网
  • GDB:The GNU Project debugger;一个 C 调试器。 GNU GPL3 或更高版本。 官网
  • Glade:一个让 TK+ GUIs 开发更快的 RAD 工具。 GNU GPL2.1 官网
  • GMSL:GNU Make Standard Library;一个 GNU Make 额外功能的集合。 3-clause BSD 官网
  • GNU Global:一个 C 的源码标签工具。 GNU GPL3 官网 Global
  • gprof:一个性能分析工具。GNU binutils 的一部分。 GNU GPL3 或更高版本。 官网
  • Highlight:把源码转化为高亮的格式化文本。 GNU GPL3 官网
  • include-what-you-use:帮助程序员发现不必要的包含和提供解决他们的建议。基于 LLVM/Clang(只能与它一起工作)。 NCSA 官网
  • indent:自动格式化 C 代码,让它更容易阅读。也能把一种风格的代码转化为另一种。 GNU GPL3 或更高版本。 官网
  • Make:一个控制程序的可执行和其他非代码文件的生成的工具。 GNU GPL3 或更高版本(链接到 GNU 的实现)。 官网
  • qo:无需分开的配置文件的构建系统。 Expat 官网
  • rr:记录非确定执行来允许可确定调试的调试器。 FreeBSD 官网
  • tup:一个很快,基于文件,跨平台的构建系统。 GNU GPL2.1 官网
  • unifdef:移除 #ifdef 和 #if 指令包含的文本,不会改变文件的其他部分。 3-clause BSDFreeBSD 官网
  • Valgrind:各种动态分析工具,包括一个内存泄漏检测工具。 GNU GPL2.1 官网

其他工具
#

下面是包罗万象的目录,主要是那些不适合放在其他目录的东西。

XML
#

“XML 是垃圾。真的,没有任何借口。XML 对人类不友好的,甚至对于电脑来说也是一场灾难。根官网 -Linus Torvalds

其他资源
#

有影响力的书
#

具有广泛影响且值得阅读的 C 语言经典书籍。

  • 待补充

知名网站/博客
#

值得关注的 C 语言技术站点和博客。

中文
#

  • 待补充

英文
#

  • 待补充

微信公众号
#

  • CPP开发者:专注分享 C/C++ 开发相关的技术文章和工具资源。

转自:https://github.com/jobbole/awesome-c-cn

相关文章

Python中的小技巧
·167 字·1 分钟
Python面试题目
·116 字·1 分钟
Django学习视频
·13 字·1 分钟