C 語言資源大全中文版

wcxd1938 8年前發布 | 69K 次閱讀 C語言 C/C++開發

來自: https://github.com/jobbole/awesome-c-cn?hmsr=toutiao.io&utm_medium=toutiao.io&utm_source=toutiao.io

C 語言資源大全中文版

我想很多程序員應該記得 GitHub 上有一個 Awesome - XXX 系列的資源整理。 awesome-c 是 koz.ross 發起維護的 C 語言資源列表,內容包括了:構建系統、編譯器、數據庫、加密、初中高的教程/指南、書籍、庫等等。

Awesome 系列雖然挺全,但基本只對收錄的資源做了極為簡要的介紹,如果有更詳細的中文介紹,對相應開發者的幫助會更大。這也是我們發起這個開源項目的初衷。

我們要做什么?

如何參與本項目?

從下面的目錄來看,本項目的工作量小不了,所以非常期待能有更多程序員一起來參與。

不過加入前,有幾個小要求:

  • 英文還不錯,能讀懂英文并用自己的話復述;
  • 在用 C 語言;

如有興趣,請加 QQ:50872495。加 Q 時請注明「C語言大全」。// 這不是 QQ 群。

本項目的參與者

注:名單不分排名,不定期補充更新

目錄

  • 構建系統
  • 編譯器
  • 加密
  • 數據庫
  • 文檔生成
  • 編輯器
  • 環境
  • 框架
  • 游戲編程
    • 引擎
    • 資源
  • 通用編程
  • 圖形
  • GUI
  • JSON
  • 學習、參考和指南
    • 在線資源
      • 參考
      • 初級
      • 中級
      • 高級
      • 自學資源
    • 實體書
      • 參考
      • 初級
      • 中級
      • 高級
  • 多媒體
  • 網絡編程
    • Web 框架
  • 數值計算
  • 并行編程
  • 正則表達式
  • 序列化
  • 源碼集錦
  • 標準庫
  • 字符串處理
  • 測試工具
  • 文本編輯器擴展
    • Emacs
    • Vim
  • 工具
  • 其他工具
  • XML
  • 其他資源
    • 有影響力的書
    • 知名網站/博客
    • 微信公眾號

構建系統

下面是一些 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(除了復雜的類型)。 GNU 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 的格式。 GNU GPL2.1
  • DocOnce - 一種樸素的標簽標記語言,可以用來生成多種格式的文檔。 3-clause BSD .
  • 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 游戲編程代碼的例子。

  • Corange :一個純 C 的游戲引擎。官網
  • FreeBSD
  • Darkplaces - 一個 Quake2 引擎的修改版本。 GNU GPL2.1
  • ioquake3 - Quake3 引擎,終于免費啦。 GNU GPL2.1
  • Orx - 一個便攜,輕量級,插件化,數據驅動,面向 2D 的游戲引擎。 zlib
  • Quake2 - Quake2 引擎。 GNU GPL2.1
  • Spearmint - 一個為 FPS 游戲設計的引擎。 GNU GPL3 及更高版本。

資源

這些是篩選過的,對游戲編程有用的庫。

  • Allegro - 一個跨平臺,視頻游戲開發和多媒體庫。 zlib
  • Chipmunk2D - 一個快且輕量級的 2D 游戲物理庫。 Expat
  • CSFML - 一個用 C 封裝的 SFMLzlib
  • 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 .

網絡編程

  • asnlc - 一個把 ASN.1 規范轉換為 C 代碼的編譯器。 FreeBSD
  • czmq - 一個 ZeroMQ 的高級綁定。
  • GNU adns - 一個高級,易用,異步的 DNS 客戶端和實用工具。 GNU GPL3 及更高版本。
  • GNU SASL - 一個簡單身份認證和安全層和一些常見 SASL 機制的實現。 GNU GPL3 及更高版本。
  • GnuTLS - 一個安全通信庫,實現了 SSL,TLS 和 DTLS。 GNU LGPL2.1 及更高版本。
  • gumbo-parser - 一個 C99 標準的 HTML5 解析庫。 Apache2.0
  • http-parser - 一個 HTTP 請求回應解析器。 Expat
  • ldns - 一個簡化 DNS 編程的庫。 3-clause BSD
  • libcurl - 一個客戶端的 URL 轉換庫,支持多種格式。 curl license
  • LibEtPan - 一個郵件庫,支持 IMAP,SMTP,POP 和 NNTP 網絡協議。 3-clause BSD
  • libev - 一個事件驅動庫。 FreeBSD .
  • libevent - 一個在網絡服務器中事件驅動庫的可替代品。 3-clause BSD
  • libgss - 通用安全服務。 GNU GPL3 或更高版本。
  • libhttpd - 一個給應用或嵌入式設備添加基本 Web 服務器功能的庫。 GNU GPL2
  • libidn - Stringprep,Punycode 和 IDNA 規范的實現。 GNU GPL3 或更高版本。
  • libmicrohttpd - 一個迷你庫,可作為其他應用的一部分,讓運行 HTTP 服務器變得簡單。 GNU LGPL2.1 或更高版本。
  • libsoup - 一個 GNOME HTTP 客戶端/服務器庫,使用了 GObject。 GNU LGPL2.1
  • lwan - 一個實驗性,可擴展,高性能的 HTTP 服務器。 GNU GPL2.1
  • mongoose - 基于 C 的嵌入式 Web 服務器。 GNU GPL2.1
  • nanomsg - 一個基于 C 的 ZeroMQ 實現。 Expat
  • onion - 易于使用的 HTTP 服務器庫。 Apache2.0
  • OpenSSL - 一個 SSL 和 TLS 協議的實現,還包括一個加密庫。 Dual Licensed under the OpenSSL License and the SSLeay License
  • oSip - 一個基于 C 的 SIO 實現,沒有額外的依賴。 GNU LGPLv2.1 或更高版本。
  • s2n - 一個 C99 標準的 TLS/SSL 協議的實現,簡單,快并且以安全優先。 Apache2.0
  • socket99 - BSD 套接字 API 的 C99 封裝。 ISC
  • Tox - 一個通信平臺,被設計為 Skype 殺手。 GNU GPL3
  • twitc - 一個與 推ter OAuth API 交互的迷你 C 庫。 Expat

Web框架

  • balde - 一個基于 GLib 的 C 微框架。 GNU LGPLv2.1

數值計算

  • 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 - 一個在并行計算機中的解決大型,稀疏特征值問題的軟件庫。 GNU 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。

  • PCRE - 與 Perl 5 正則表達式完全相同的實現。 3-clause BSD
  • SLRE - Super Light Regular Expression library;一個 Perl 正則表達式語法子集的迷你實現。 GNU GPL2.1
  • TRE - 一個與 POSIX 一致,充滿特色的正則表達式庫。 FreeBSD
  • PS:關于正則表達式,deerchao 有篇文章不錯 《 正則表達式 30 分鐘入門教程

序列化

  • c-capnproto - 一個 Cap'n Proto 序列化協議的實現。 Expat
  • cmp - 一個 MessagePack 序列化協議的實現。 Expat
  • libavro - 一個 Avro 數據序列化系統的 C 實現。 Apache2.0
  • mpack - 另一個 MessagePack 序列化協議的實現。 Expat
  • protobuf-c - 一個 Google Protocol Buffer 的 C 實現。 FreeBSD
  • xdr - External Data Representation;數據序列化標準。標準(沒有可用許可)。

源碼集錦

下面包含了一些小型源碼集合。如果你想要大型且成熟的,看《框架》那一節。

  • CCAN - 模仿 Perl 的 CPAN,這是一個大的實用 C 代碼集合。完整的列表在 這里 。多種許可(所有都是免費軟件)。
  • clib - 一個 C 軟件包管理器,配備了一堆自己的庫。 Expat
  • gnulib - 通用 GNU 代碼的集合。多種許可證,全部免費。
  • libdjb - 做各種事情的庫的集合。(顯然)公共領域。

標準庫

下面包括了標準 C 庫。

  • Bionic - 谷歌為 Android 開發的 C 標準庫。 3-clause BSD
  • dietlibc - 標準 C 庫,可能是最小的二進制文件。 GNU GPL2.1
  • glibc - GNU C 庫。一個 C 標準庫的實現。 GNU LGPL2.1
  • musl - 標準 C 庫,兼容 POSIX 2008 和 C11,為靜態鏈接設計。 Expat

字符串處理

  • bstrlib - 更好的字符串處理庫。雙重許可, 3-clause BSDGNU GPL2.1
  • ICU - International Components for Unicode;提供 Unicode 支持的庫。 ICU license
  • libunistring - 處理 Unicode 字符串的 C 庫。 GNU LGPL3
  • libgiconv - 文本轉換庫。 GNU LGPL2.1 (庫), GNU GPL3 (編碼轉換程序)。
  • SDS - Simple Dynamic Strings;一個用簡單方式處理 C 字符串的庫,而且兼容標準 C 字符串函數。可通過clib 使用。 FreeBSD
  • shoco - 一個小型文本壓縮器。 Expat
  • smaz - 一個高效的字符串壓縮庫。 3-clause BSD .

測試工具

  • CHEAT - 一個非常簡單的單元測試框架。 FreeBSD
  • Check - 一個 C 的單元測試框架。 GNU LGPL2.1
  • CMock - 一個 C 的 mock/stub 生成器。
  • cmocka - 一個支持 mock 對象的單元測試框架。 Apache2.0
  • Criterion - 一個 KISS 風格,非侵入式的 C 測試框架。 Expat
  • CUnit - 另一個 C 的單元測試框架。 GNU LGPL2.0
  • minunit - 極小的 C 單元測試框架。 Expat
  • Unity - 一個簡單的 C 單元測試框架。 Expat

文本編輯器擴展

在幾乎任何像樣的文本編輯器支持 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
  • 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

其他工具

下面是包羅萬象的目錄,主要是那些不適合放在其他目錄的東西。

  • ApeTagLibs - APEv2 標簽的 C 庫。 Expat
  • bfd - 處理二進制對象文件的庫。GNU binutils 的一部分。 GNU GPL3 或更高版本。
  • ccv - C-based/Cached/Core Computer Vision library;現代計算機視覺。 3-clause BSD
  • cf4ocl - The C Framework for OpenCL;一個跨平臺面向對象框架,用于開發和用基準問題測試 OpenCL 項目。 GNU LGPL3 (庫), GNU GPL3 (其他代碼)。
  • CommonMark - CommonMark 規范的 C 實現。 Variety of licenses, all free
  • CException - 異常的 C 實現。 Expat
  • docopt.c - 命令行選項解析器的 C 實現。 Expat
  • dyncall - 另一個外部函數接口庫。 Expat
  • FANN - Fast Artifical Neural Network library;一個神經網絡的實現。 GNU GPL2.1
  • Firm - 一個 C 庫,提供了基于圖像中間表示,優化和適合編譯器的匯編代碼生成。配備了 C 的前端例子,使用相同的許可。 GNU LGPLv2.1
  • gjrand - 隨機數字生成的例程庫。 GNU GPL2.1 或者 GNU GPLv3 (用戶的選擇)。
  • GNU FreeIPMI - 一個帶內和帶外的 IPMI 實現。 GNU GPL3
  • GNU gperf - 一個完美的哈希函數生成器,提供一系列的字符串。輸出 C 代碼。 GNU GPL3 或更高版本。
  • GNU Libffcall - 一個構建外部函數接口庫的集合。 GNU GPL3 或更高版本。
  • gperftools - 一系列測量和提高性能的實用工具集合。 3-clause BSD
  • hammer - 二進制格式的解析器組合。 GNU GPL2.1 .
  • Hans Boehm GC - C 的垃圾收集器?如果我用了不要介意。多種許可證,完全免費。
  • huffandpuff - 一個極小的哈夫曼編碼器和解碼器。公共領域。
  • iniparser - 一個 .ini 文件的解析器。 Expat
  • jemalloc - 一個 malloc 實現,著重于段錯誤的避免和可擴展并發支持。 FreeBSD
  • jwHash - 一個很快的哈希表實現。 Apache2.0
  • kdtree - KD-trees 的簡單庫。 3-clause BSD
  • Kitsune - 高效,通用的框架,用于軟件的動態升級。 GNU LGPL3 或更高版本。
  • libavl - 一個包括各種自平衡二叉樹的庫。 GNU GPL3 或更高版本。
  • libbson - BSON 實用庫。 Apache2.0
  • libCello - 引入高級語言給 C 的庫。
  • libcox - 一個運行跨平臺系統調用和跨系統標準工具的庫。 FreeBSD
  • libffi - 輕量級的外部函數接口庫。 Expat
  • libgit2 - Git 的純 C 實現。 GNU GPL2 only, with a linking exception
  • libimobiledevice - 一個跨平臺協議庫,用于與 iThings 通信。 GNU LGPLv2.1 或更高版本(庫), GNU GPL2.1 或更高版本(工具)。
  • libmpv - 音樂播放庫。編譯的時候加入 ./waf configure --disable-cplayer --enable-libmpv-shared 來避免生成音樂播放器。 GNU GPL2.1 或更高版本。
  • libnfc - 一個平臺獨立的 NFC 庫。 GNU LGPL3
  • libPhenom - 事件框架,用于構建高擴展和高性能系統。 Apache2.0
  • libsoundio - 跨平臺,實時音頻輸入輸出的庫,有很多種后端。 Expat
  • libucl - 通用配置庫解析器。 FreeBSD
  • libudp - 一個統一設計模式的 C 實現。 GNU GPL3 或更高版本。
  • libuv - 跨平臺異步 I/O。 Expat
  • libYAML - 一個 YAML 1.1 解析器和發射器。 Expat
  • lzo - 一個很快的數據壓縮庫。 GNU GPL2.1
  • mpc - 解析器組合庫。 FreeBSD
  • ncurses - 彩色的終端 UI 庫。 GNU GPL3 或更高版本。
  • nope.c - 一個基于 C 語言,超級輕量級的軟件平臺,用于可擴展服務端和網絡應用的開發(想想 C 程序員的 nodejs)。
  • pbc - 一個協議緩沖庫。 Expat
  • rabbitmq-c - RabbitMQ 的客戶端庫。 Expat
  • Ragel - 為編譯C的狀態機的DSL。 GNU GPL2.1
  • uthash - 哈希表實現,允許已經存在的數據結構很容易地存在哈希表里面。 1-clause BSD
  • Viola - libCello 的簡化版本。 Expat
  • zlib - 一個相當漂亮卻精致不張揚的壓縮庫。 3-clause BSD

XML

“XML 是垃圾。真的,沒有任何借口。XML 對人類不友好的,甚至對于電腦來說也是一場災難。根本就沒有這個可怕的垃圾存在的理由” -Linus Torvalds

其他資源

有影響力的書

具有廣泛影響且值得閱讀的 C 語言經典書籍。

  • 待補充

知名網站/博客

值得關注的 C 語言技術站點和博客。

中文

  • 待補充

英文

  • 待補充

微信公眾號

  • CPP開發者:專注分享 C/C++ 開發相關的技術文章和工具資源。

  • </ul> </article>

 本文由用戶 wcxd1938 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!