日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

C 语言资源大全中文版

發布時間:2025/3/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C 语言资源大全中文版 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C?語言資源大全中文版?

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

?

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

?

*?*?*

?

###?我們要做什么?

?

-?基于?awesome-c?列表,我們將對其中的各個資源項進行編譯整理。此外還將從其他來源補充好資源。

-?整理后的內容,將收錄在[伯樂在線資源頻道](http://hao.jobbole.com/)。可參考已整理的內容:

??-?《[libPhenom:Facebook開源的高性能C語言并發編程框架](http://hao.jobbole.com/libphenom/)》

?

*?*?*

?

###?如何參與本項目?

?

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

?

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

?

*?英文還不錯,能讀懂英文并用自己的話復述;

*?在用?C?語言;

?

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

?

*?*?*

?

###?如何為列表貢獻新資源?

?

歡迎大家為列表貢獻高質量的新資源,提交PR時請參照以下要求:

?

*?請確保推薦的資源自己使用過

*?提交PR時請注明推薦理由

?

資源列表管理收到PR請求后,會定期(每周)在微博轉發本周提交的PR列表,并在微博上面聽取使用過這些資源的意見。確認通過后,會加入資源大全。

?

感謝您的貢獻!

?

*?*?*

?

###?本項目的參與者

?

-?維護者:

-?貢獻者:[Yonah瀟](http://www.jobbole.com/members/Yonah/)、[骷髏](http://www.jobbole.com/members/lighter_cd/)、[賀賀](http://www.jobbole.com/members/jianghehe/)、[beyondwu](http://www.jobbole.com/members/beyondwu/)、[Huang?Lin](https://github.com/MiterV1)、[Anloper](https://github.com/Anloper)、[冰斌](http://www.jobbole.com/members/libing1209/)

?

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

?

*?*?*

?

<!--?###?獎勵計劃

?

雖然獎勵可能并不是你加入的主要原因,但還是有必要提一下:

?

*?整理超過?20?個資源后,可在伯樂在線上開通打賞;

*?每整理?20?個資源,有機會獲得技術書籍或各種有意思的創意、極客產品;

*?[獎勵詳情](http://hao.jobbole.com/rewards/)

?

*?*?*?-->

?

##?目錄

*???[構建系統](#build-systems)

*???[編譯器](#compilers)

*???[加密](#crypto)

*???[數據庫](#database)

*???[文檔生成](#documentation-generation)

*???[編輯器](#editors)

*???[環境](#environments)

*???[框架](#frameworks)

*???[游戲編程](#game-programming)

????*???[引擎](#engines)

????*???[資源](#resources)

*???[通用編程](#generic-programming)

*???[圖形](#graphics)

*???[GUI](#gui)

*???[JSON](#json)

*???[學習、參考和指南](#learning-reference-and-tutorials)

????*???[在線資源](#online)

????????*???[參考](#reference)

????????*???[初級](#beginner)

????????*???[中級](#intermediate)

????????*???[高級](#advanced)

????????*???[自學資源](#self-study-courses)

????*???[實體書](#physical)

????????*???[參考](#reference-1)

????????*???[初級](#beginner-1)

????????*???[中級](#intermediate-1)

????????*???[高級](#advanced-1)

*???[多媒體](#multimedia)

*???[網絡編程](#networking-and-internet)

????*???[Web?框架](#web-frameworks)

*???[數值計算](#numerical)

*???[并行編程](#parallel-programming)

*???[正則表達式](#regex)

*???[序列化](#serialization)

*???[源碼集錦](#source-code-collections)

*???[標準庫](#standard-libraries)

*???[字符串處理](#string-manipulation)

*???[測試工具](#testing)

*???[文本編輯器擴展](#text-editor-extensions)

????*???[Emacs](#emacs)

????*???[Vim](#vim)

*???[工具](#tools)

*???[其他工具](#utilities)

*???[XML](#xml)

*???[其他資源](#resources-2)

????*???[有影響力的書](#influential-books)

????*???[知名網站/博客](#websites-blogs)

????*???[微信公眾號](#weibo-weixin)

?

<h2?id="build-systems">構建系統</h2>

?

下面是一些?C?項目的自動化構建和測試工具。

?

*???aimake:一個被設計來避免復雜配置的構建工具。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?或更高版本。[官網](http://nethack4.org/projects/aimake/)

*???Autoconf:一個可擴展的?M4?宏指令包,提供命令行腳本來自動配置軟件源碼包,是?Autotools?的一部分。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?或更高版本。[官網](https://www.gnu.org/software/autoconf/)

*???Automake:一個自動生成符合?GNU?代碼標準的?Makefile.in?文件的工具。需要與?Autoconf?配合使用,它也是?Autotools?的一部分。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?或更高版本。[官網](https://www.gnu.org/software/automake/automake.html)

*???Jam:一個構建系統,它被設計的比make更加易用。隱式地理解?C?的構建規則。[Jam?License](https://en.wikipedia.org/wiki/Perforce_Jam#License)。[官網](https://www.perforce.com/resources/documentation/jam)

*???Libtool:一個通用庫支持腳本,是?Autotools?的一部分。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?或更高版本。[官網](https://gnu.org/software/libtool/)

*???Meson:一個非常快,用戶友好的構建系統,基于?Ninja。[Apache2.0](http://directory.fsf.org/wiki/License:Apache2.0)。[官網](http://mesonbuild.com/)

?

<h2?id="compilers">編譯器</h2>

?

*???Clang:一個基于?LLVM?的?C?的編譯器,支持?C11?標準。[NCSA](http://directory.fsf.org/wiki/License:IllinoisNCSA)。[官網](http://clang.llvm.org/)

*???CompCert:一個經過充分驗證的?C?編譯器。支持幾乎所有的?C89?標準。[GNU?GPL2.1](http://www.gnu.org/licenses/gpl.html)?或更高版本。[官網](https://github.com/AbsInt/CompCert)

*???GCC:在它的編譯器集合中提供了?C?編譯器。支持?C11?和?OpenMP?的標準。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?或更高版本。[官網](https://gcc.gnu.org/)

*???PCC:一個值得尊敬的?C?編譯器,支持?C99?標準。[Various?licenses](http://pcc.ludd.ltu.se/licenses/),完全免費。[官網](http://pcc.ludd.ltu.se/)

*???TCC:一個迷你,速度快的?C?編譯器,支持?C99(除了復雜的類型)。?[LGPL2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)。[官網](http://bellard.org/tcc/)

?

<h2?id="crypto">加密</h2>

?

*???GnuTLS:一個安全通信庫,實現了?SSL,TLS?和?DTLS。[GNU?GPL2.1](http://www.gnu.org/licenses/gpl.html)?或更高版本。[官網](http://www.gnutls.org/)

*???libgcrypt:一個通用的密碼庫,支持多種加密方法。?[GNU?LGPL2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)?(代碼),[GNU?GPL2.1](http://www.gnu.org/licenses/gpl.html)?或更高版本(說明書和工具)。[官網](https://www.gnu.org/software/libgcrypt/)

*???OpenSSL:一個?SSL?和?TLS?協議的實現,還包括一個加密庫。[Dual?Licensed?under?the?OpenSSL?License?and?the?SSLeay?License](https://www.openssl.org/source/license.html)。[官網](https://www.openssl.org/)

*???libsodium:一個現代,易用的加密庫。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](https://github.com/jedisct1/libsodium)

*???libtomcrypt:一個相當全面,模塊化和可移植的工具集。公開領域。[官網](https://github.com/libtom/libtomcrypt)

*???mbed?TLS:一個?C?實現的加密庫。[Apache2.0](http://directory.fsf.org/wiki/License:Apache2.0)。[官網](https://tls.mbed.org/)

?

<h2?id="database">數據庫</h2>

?

下面列出了基于?C?API?的數據庫和數據存儲

?

*???BerkeleyDB:一個高性能的嵌入式鍵值對數據庫。[GNU?AGPLv3](https://gnu.org/licenses/agpl.html)。[官網](http://www.oracle.com/us/products/database/berkeley-db/overview/index.html)

*???Hiredis:一個極簡的?Redis?客戶端。[3-clause?BSD](http://directory.fsf.org/wiki/License:BSD_3Clause)。[官網](https://github.com/redis/hiredis)

*???LMDB:一個極快,極簡的嵌入式鍵值對數據存儲系統。[newOpenLDAP](http://directory.fsf.org/wiki/License:OpenLDAPv2.7)。[官網](http://symas.com/mdb/)

*???MariaDB:一個強壯,可擴展和可靠的?SQL?服務器,設計來作為?MySQL?的替代品。[3-clause?BSD](http://directory.fsf.org/wiki/License:BSD_3Clause)。[官網](https://mariadb.com/)

*???mongo-c-driver:一個高性能的?MongoDB?客戶端。[Apache2.0](http://directory.fsf.org/wiki/License:Apache2.0).[官網](https://github.com/mongodb/mongo-c-driver)

*???PostgreSQL:一個強大的對象關系數據庫系統。[PostgreSQL?licence](http://opensource.org/licenses/postgresql)。[官網](http://www.postgresql.org/)

*???recutils:一個工具和?C?庫的集合,用于訪問可編輯,純文本的名為?recfiles?的數據庫文件。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?或更高版本。[官網](https://www.gnu.org/software/recutils/)

*???Redis:一個先進的鍵值對存儲系統。[3-clause?BSD](http://directory.fsf.org/wiki/License:BSD_3Clause)。[官網](http://redis.io/)

*???sophia:一個現代,可嵌入的鍵值對數據庫。[FreeBSD](http://directory.fsf.org/wiki?title=License:FreeBSD?"License:FreeBSD")。[官網](https://github.com/pmwkaa/sophia)

*???SQLite:一個自包含,無服務器,零配置,支持事務的?SQL?數據庫引擎,包括?C?接口。公開領域。[官網](http://www.sqlite.org/)

*???UnQLite:一個自包含,無服務器,零配置,支持事務的?NoSQL?數據庫引擎,包括?C?接口。[FreeBSD](http://directory.fsf.org/wiki?title=License:FreeBSD?"License:FreeBSD")。[官網](http://unqlite.org/)

?

<h2?id="documentation-generation">文檔生成</h2>

?

*???Cxref:生成?C?程序的文檔,支持?LaTeX,HTML,?RTF?或者?SGML?的格式。[GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)[官網](http://www.gedanken.org.uk/software/cxref/)

*???DocOnce:一種樸素的標簽標記語言,可以用來生成多種格式的文檔。[BSD-3clause](http://directory.fsf.org/wiki/License:BSD_3Clause).[官網](https://hplgit.github.io/doconce/doc/web/index.html)

*???Doxygen:一個事實上的標準工具,用于從注釋的代碼中生成?C?文檔。能夠生成多種格式的文檔。[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)。[官網](http://www.stack.nl/~dimitri/doxygen/index.html)

*???GTK-Doc:一個從注釋的代碼中生成?C?文檔的工具,支持?Autotools?[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)(代碼),?[GNU?FDL1.1](https://www.gnu.org/licenses/old-licenses/fdl-1.1.html)。[官網](http://www.gtk.org/gtk-doc/)

?

<h2?id="editors">編輯器</h2>

?

這些是特別精致,IDE?類型的編輯器。如果你想要一個程序員的文本編輯器,看別的地方。此外,不管你選擇哪一款編輯器,它都支持?C。

?

*???Anjuta?DevStudio:GNOME?IDE。?[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)。[官網](http://anjuta.org/)

*???Code::Blocks:一個可擴展,可配置的?IDE,支持?C。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)。[官網](http://www.codeblocks.org/)

*???CodeLite:一個跨平臺的?IDE。?[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)。[官網](http://www.codelite.org/)

*???Eclipse:一個用?Java?寫成的?IDE。?[EPL](http://directory.fsf.org/wiki/License:EPLv1.0)。[官網](http://www.eclipse.org/ide/)

*???Geany:一個很小很快的?IDE。?[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)及更高版本。[官網](http://www.geany.org/)

*???KDevelop:KDE?IDE.?[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)。[官網](https://www.kdevelop.org/)

?

<h2?id="environments">環境</h2>

?

下面列出了被設計來引領?Windows?進入支持?C?的?21?世紀的技術。

?

*???Cygwin:被設計用于在?Windows?下模擬?POSIX?兼容環境。[Various?licenses,?all?free](https://cygwin.com/licensing.html)。[官網](https://cygwin.com/)

*???MinGW-w64:一個?Windows?下極簡的?C?開發環境,支持?64?位。[Various?licenses,?all?free](http://mingw.org/license)。[官網](http://mingw-w64.yaxm.org/doku.php/start)

?

<h2?id="frameworks">框架</h2>

?

這一節包括提供數據結構的大型庫和你所期待“現代”的標準庫。

?

*???APR:Apache?Portable?Runtime;另一個跨平臺的實用函數庫。[Apache2.0](http://directory.fsf.org/wiki/License:Apache2.0)。[官網](http://apr.apache.org/)

*???C?Algorithms:一個常用算法和數據結構的集合。[官網](https://github.com/fragglet/c-algorithms)

*???CPL:The?Common?Pipeline?Library;一系列詳盡,高效和強壯的軟件工具包。[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)。[官網](http://www.eso.org/sci/software/cpl/)

*???EFL:一個大型實用數據結構和函數的的集合。多種許可證,完全免費。[官網](https://www.enlightenment.org/p.php?p=about/efl)

*???GLib:一個便攜,高效和強大的實用函數和數據結構庫。[GNU?LGPL2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)。[官網](https://wiki.gnome.org/Projects/GLib)

*???GIO:一個現代和易用的?VFS?API。[GNU?LGPL2.1]。[官網](https://developer.gnome.org/gio/)

*???GObject:一個?C?的面向對象系統和對象模型。[GNU?LGPL2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)。[官網](https://developer.gnome.org/gobject/stable/)

*???libnih:一個輕量級的?C?函數和數據結構庫。[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)。[官網](https://github.com/keybuk/libnih)

*???libU:一個提供基本實用函數的迷你庫,包括內存分配,字符串處理和日志功能。[官網](http://www.koanlogic.com/libu/)

*???PBL:一個包括實用函數,特色數據結構等的大型庫。[GNU?LGPL2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)及更高版本(庫),[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)及更高版本(測試代碼)。[官網](http://www.mission-base.com/peter/source/)

*???qlibc:一個簡單且強大的?C?庫,當我們想要小且輕的庫時,可作為?Glib?的替代品。[qLib?license](https://github.com/wolkykim/qlibc/blob/master/LICENSE)?(類似于?[FreeBSD](http://directory.fsf.org/wiki?title=License:FreeBSD?"License:FreeBSD"))。[官網](https://github.com/wolkykim/qlibc)

*???stb:一系列單文件?C?庫。公共領域。[官網](https://github.com/nothings/stb)

*???[libcstl](http://hao.jobbole.com/libcstl/):標準C語言通用數據結構和常用算法庫。[官網](http://libcstl.org/)

?

<h2?id="game-programming">游戲編程</h2>

?

<h3?id="engines">引擎</h3>

?

這些作為?C?游戲編程代碼的例子。

?

*???[Corange](http://hao.jobbole.com/corange/):一個純?C?的游戲引擎。[FreeBSD](http://directory.fsf.org/wiki?title=License:FreeBSD?"License:FreeBSD")。[官網](https://github.com/orangeduck/Corange)

*???Darkplaces:一個?Quake2?引擎的修改版本。[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)。[官網](https://icculus.org/twilight/darkplaces/)

*???ioquake3:Quake3?引擎,終于免費啦。[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)。[官網](https://github.com/ioquake/ioq3)

*???Orx:一個便攜,輕量級,插件化,數據驅動,面向?2D?的游戲引擎。[zlib](http://directory.fsf.org/wiki/License:Zlib)。[官網](https://bitbucket.org/orx/orx)

*???[Quake2](http://hao.jobbole.com/quake2/):Quake2?引擎。[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)。[官網](https://github.com/id-Software/Quake-2)

*???Spearmint:一個為?FPS?游戲設計的引擎。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)及更高版本。[官網](https://github.com/zturtleman/spearmint)

?

<h3?id="resources">資源</h3>

?

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

?

*???Allegro:一個跨平臺,視頻游戲開發和多媒體庫。[zlib](http://directory.fsf.org/wiki/License:Zlib)。[官網](http://liballeg.org)

*???Chipmunk2D:一個快且輕量級的?2D?游戲物理庫。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](https://github.com/slembcke/Chipmunk2D)

*???CSFML:一個用?C?封裝的?[SFML](http://www.sfml-dev.org/index.php)。[zlib](http://directory.fsf.org/wiki/License:Zlib)。[官網](http://www.sfml-dev.org/download/csfml/)

*???FreeGLUT:一個替代性的?OpenGL?實用工具包。允許用?OpenGL?上下文創建和管理窗口。[X11](http://directory.fsf.org/wiki/License:X11)。[官網](https://github.com/dcnieho/FreeGLUT)

*???GLFW:一個使用?OpenGL?上下文創建窗口的多平臺庫。[zlib](http://directory.fsf.org/wiki/License:Zlib)。[官網](http://www.glfw.org/)

*???libao:一個有多種輸出的跨平臺音頻庫。[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)及更高版本。[官網](https://github.com/timonwong/libao)

*???RetroArch:[libretro](http://www.libretro.com/)?的參考前端。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)。[官網](https://github.com/libretro/RetroArch)

*???SDL:一個跨平臺庫,通過?OpenGL?提供音頻,鍵盤,鼠標,操縱桿和圖形硬件的底層訪問。[zlib](http://directory.fsf.org/wiki/License:Zlib)。[官網](https://www.libsdl.org/)

*???SDL2:一個跨平臺庫,通過?OpenGL?提供音頻,鍵盤,鼠標,操縱桿和圖形硬件的底層訪問。這是最新版本。[zlib](http://directory.fsf.org/wiki/License:Zlib)。[官網](https://www.libsdl.org/)

?

<h2?id="generic-programming">通用編程</h2>

?

*???klib:小且輕量級的常用算法和數據結構實現。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](https://github.com/attractivechaos/klib)

?

<h2?id="graphics">圖形</h2>

?

*???Cairo:一個?2D?圖像庫。[GNU?LGPL2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)?或者?[MPLv1.1](https://directory.fsf.org/wiki/License:MPLv1.1)。[官網](http://cairographics.org/)

*???Cogl:一個?GPU?圖像和實用?API。[Expat](http://directory.fsf.org/wiki/License:Expat)(依賴使用?[3-clause?BSD](http://directory.fsf.org/wiki/License:BSD_3Clause)?許可,庫使用?[LGPLv2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)?許可)。[官網](https://github.com/rib/cogl-web/wiki)

*???Clutter:一個基于?OpenGL?的?UI?庫。[GNU?LGPL2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)。[官網](https://blogs.gnome.org/clutter/get-it/)

*???heman:一個迷你圖像實用工具庫,處理高度圖,法線圖,距離場等。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](https://github.com/prideout/heman)

*???libcaca:一個基于終端接口的?ASCII?渲染器。[WTFPLv2](http://www.wtfpl.net/txt/copying/)。[官網](https://github.com/cacalabs/libcaca)

*???libimagequant:小且輕量級的庫,用于高質量的從?RGBA?圖像到?8?位像素圖的轉換。[FreeBSD](http://directory.fsf.org/wiki?title=License:FreeBSD?"License:FreeBSD")。[官網](https://pngquant.org/lib/)

*???libjpeg-turbo:一個更快的讀寫?JPEG?文件庫。[Various?licences](http://www.libjpeg-turbo.org/About/License)。[官網](http://libjpeg-turbo.virtualgl.org/)

*???libpng:官方?PNG?參考庫。[libpng?license](http://www.libpng.org/pub/png/src/libpng-LICENSE.txt)。[官網](https://http://www.libpng.org/)

*???libxmi:一個光柵化?2D?位圖的函數庫。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?或更高版本。[官網](https://gnu.org/software/libxmi/)

*???mozjpeg:一個提升?JPEG?圖像質量的編碼器。[3-clause?BSD](http://directory.fsf.org/wiki/License:BSD_3Clause)。[官網](https://github.com/mozilla/mozjpeg)

*???OpenGL:一個高性能圖像的工業標準,提供了原生?C語言?綁定。[Various?licenses](http://www.sgi.com/tech/opengl/?/license.html)。[官網](https://www.opengl.org/)

*???[Craft](http://hao.jobbole.com/craft/):一個利用OpenGL使用C編寫的簡單MineCraft的克隆。[官網](http://www.michaelfogleman.com/craft/)、[GitHub](https://github.com/fogleman/Craft)

?

<h2?id="gui">GUI</h2>

?

這些具體來說就是[控件工具包](https://en.wikipedia.org/wiki/Widget_toolkit)

?

*???GTK+:一個跨平臺的控件工具包。[GNU?LGPL2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)。[官網](http://www.gtk.org/)

*???IUP:另一個跨平臺的控件工具包。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](http://webserver2.tecgraf.puc-rio.br/iup/)

*???Tk:一個基本控件工具包,Tcl/Tk?的一部分。[Tcl/Tk?License](http://www.tcl.tk/software/tcltk/license.html)。[官網](http://www.tcl.tk/)

*???XForms?Toolkit:一個為?XWindow?設計的控件工具包。[GNU?LGPL2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)。[官網](http://xforms-toolkit.org/)

?

<h2?id="json">JSON</h2>

?

*???Jansson:一個編碼,解碼和處理?JSON?的?C?庫。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](http://www.digip.org/jansson/)

*???jsmn:一個極簡的?JSON?解析器。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](http://zserge.com/jsmn.html)

*???json-c:一個處理?JSON?的庫。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](https://github.com/json-c/json-c/wiki)

*???WJElement:高級?JSON?處理庫,支持?JSON?Schema。任意版本的?LGPL。[官網](https://github.com/netmail-open/wjelement/)

*???YAJL:一個很快的?JSON?流解析?C?庫。[ISC](http://directory.fsf.org/wiki/License:ISC)。[官網](https://lloyd.github.io/yajl/)

?

<h2?id="learning-reference-and-tutorials">學習、參考和指南</h2>

?

下面列出了學習?C?編程的資源,或者跟?C?編程相關的有用的東西。

?

###?在線

?

####?參考

?

*???[SEI?CERT?C?編碼標準](https://www.securecoding.cert.org/confluence/display/c/SEI+CERT+C+Coding+Standard)

*???[C?FAQ:comp.lang.c?常見問題](http://c-faq.com/)

*???[GNU/Linux?下?C/POSIX?標準庫實現的比較](http://www.etalabs.net/compare_libcs.html)

*???[C11?標準草案](http://www.open-std.org/JTC1/SC22/WG14/)

*???[GNU?C?參考手冊](https://www.gnu.org/software/gnu-c-manual/)

*???[Robert?Pike?的?C?筆記](http://kamalatta.ddnss.de/otherdocs/pikestyle.html)

?

####?初級

?

*???[指針教程](http://home.netcom.com/~tjensen/ptr/pointers.htm)

*???[C?語言指針?5?分鐘教程](http://blog.jobbole.com/25409/)

*???[C?語言內存地址基礎](http://blog.jobbole.com/44845/)

*???[C?語言函數指針基礎](http://blog.jobbole.com/44639/)

*???[C?語言指針和數組基礎](http://blog.jobbole.com/44863/)

*???[構建?C?項目](http://nethack4.org/blog/building-c.html)

*???[C?編程百科全書](https://en.wikibooks.org/wiki/C_Programming)

*???[“有趣”的?C?介紹](https://gist.github.com/eatonphil/21b3d6569f24ad164365)

*???[用?GDB?學習?C](https://www.recurse.com/blog/5-learning-c-with-gdb)

*???[POSIX?線程編程指南](https://computing.llnl.gov/tutorials/pthreads/)?(有點過時,但大部分還是有效和有用的)

*???[GNU?C?編程指南](http://www.crasseux.com/books/ctut.pdf)?(在線?PDF)

*???[C?語言中的模板](http://blog.pkh.me/p/20-templating-in-c.html)


?

####?中級

?

*???[8?個你應該知道的?GDB?技巧](https://blogs.oracle.com/ksplice/entry/8_gdb_tricks_you_should)

*???[10?個?C99?技巧](http://blog.noctua-software.com/c-tricks.html)

*???[深入并發:嘗試互斥鎖和原子操作](http://jvns.ca/blog/2014/12/14/fun-with-threads/)

*???[OpenMP?介紹](https://www.youtube.com/playlist?list=PLLX-Q6B8xqZ8n8bwjGdzBJ25X2utwnoEG)?(視頻)

*???[OpenMP?指南](https://computing.llnl.gov/tutorials/openMP/)?(針對?OpenMP3?標準)

*???[memcpy?與?memmove?的比較](http://www.tedunangst.com/flak/post/memcpy-vs-memmove)

*???[MPI?指南](https://computing.llnl.gov/tutorials/mpi/)

*???[C?語言中一些未知特性或者技巧](http://proprogramming.org/some-unknown-features-or-tricks-in-c-language/)

*???[失落的?C?語言結構體封裝藝術](http://blog.jobbole.com/57822/)

*???[C?程序員需要了解的內存知識](http://marek.vavrusa.com/c/memory/2015/02/20/memory/)

*???[每個?C?程序員需要知道的未定義行為知識](http://blog.llvm.org/2011/05/what-every-c-programmer-should-know.html)

?

####?高級

?

*???[C?中的高級元編程](http://250bpm.com/blog:56)

*???[一個快速教程:如何實現和調試?malloc,free,calloc,和?realloc](http://danluu.com/malloc-tutorial/)

*???[位操作技巧](https://graphics.stanford.edu/~seander/bithacks.html)

*???[我不懂?C](http://kukuruku.co/hub/programming/i-do-not-know-c)

*???[在?C?語言中實現智能指針](https://snai.pe/c/c-smart-pointers/)

*???[C?中的內聯函數](http://www.greenend.org.uk/rjk/tech/inline.html)

*???[C?中的自定義控制結構元編程](http://www.chiark.greenend.org.uk/~sgtatham/mp/)

*???[用?C?的宏解決臨時內存問題](http://www.samnip.ps/thought/macro-storage-for-inverse-comma)

*???[C?語言中一些不為人知的角落](https://docs.google.com/presentation/d/1h49gY3TSiayLMXYmRMaAEMl05FaJ-Z6jDOWOz3EsqqQ/edit?pli=1#slide=id.gaf50702c_0153)

*???[編寫高效的?C?和?C?代碼優化](http://www.codeproject.com/Articles/6154/Writing-Efficient-C-and-C-Code-Optimization)

?

####?自學教程

?

*???[C?語言認證協會預備課程](http://www.cppinstitute.org/?page_id=1487)

?

###?實體書

?

####?參考資料

?

*???[C:?A?Reference?Manual?5E](http://careferencemanual.com/):C99?完全參考手冊

*???[C?Pocket?Reference](http://shop.oreilly.com/product/9780596004361.do):C99?簡明參考手冊

*???[The?C?Programming?Language?2E](https://en.wikipedia.org/wiki/The_C_Programming_Language):第一本?C?語言書籍,由?C?的創造者編寫。

?

####?初級

?

*???[C?Primer?Plus?6E](http://www.pearsonhighered.com/educator/product/C-Primer-Plus-6E/9780321928429.page):一個全面的?C11?編程指南。

*???[C?Programming:?A?Modern?Approach](http://knking.com/books/c2/index.html):一本極好的學習?C?基礎的書。

*???[Head?First?C](http://shop.oreilly.com/product/0636920015482.do):一本“深入淺出”風格的學習?C?的書籍。

?

####?中級

?

*???[21st?Century?C](http://shop.oreilly.com/product/0636920033677.do):一本非常好的?C?語言書籍,可作為第二選擇。

*???[Understanding?and?Using?C?Pointers](http://shop.oreilly.com/product/0636920028000.do):一本深入討論?C?指針的書。

*???[ZeroMQ](http://shop.oreilly.com/product/0636920026136.do):一本介紹如何用?C?使用?ZeroMQ?的書。

?

####?高級

?

*???[Expert?C?Programming:?Deep?C?Secrets](http://dl.acm.org/citation.cfm?id=179241):一本從有趣,深度和娛樂的視角分析?C?內部結構的書籍。

?

<h2?id="multimedia">多媒體</h2>

?

*???FFMPEG:一個完整,跨平臺的錄音,轉換和流化視頻以及音頻的解決方案。[GNU?LGPL2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)?或更高版本,部分是?[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)?或更高版本。[官網](https://www.ffmpeg.org/)

*???GStreamer:一個聲音和可視化媒體的框架。[GNU?LGPL2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)。[官網](http://gstreamer.freedesktop.org/)

*???lodepng:一個簡單的?PNG?圖像解碼器和編碼器,不需要其他依賴。[3-clause?BSD](http://directory.fsf.org/wiki/License:BSD_3Clause).[官網](http://lodev.org/lodepng/)

?

<h2?id="networking-and-internet">網絡編程</h2>

?

*???asnlc:一個把?ASN.1?規范轉換為?C?代碼的編譯器。[FreeBSD](http://directory.fsf.org/wiki?title=License:FreeBSD?"License:FreeBSD")。[官網](http://lionet.info/asn1c/compiler.html)

*???czmq:一個?ZeroMQ?的高級綁定。[官網](https://github.com/zeromq/czmq)

*???GNU?adns:一個高級,易用,異步的?DNS?客戶端和實用工具。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?及更高版本。[官網](https://gnu.org/software/adns/)

*???GNU?SASL:一個簡單身份認證和安全層和一些常見?SASL?機制的實現。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?及更高版本。[官網](https://gnu.org/software/gsasl/)

*???GnuTLS:一個安全通信庫,實現了?SSL,TLS?和?DTLS。[GNU?LGPL2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)?及更高版本。[官網](http://www.gnutls.org/)

*???gumbo-parser:一個?C99?標準的?HTML5?解析庫。[Apache2.0](http://directory.fsf.org/wiki/License:Apache2.0)。[官網](https://github.com/google/gumbo-parser)

*???http-parser:一個?HTTP?請求回應解析器。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](https://github.com/nodejs/http-parser)

*???ldns:一個簡化?DNS?編程的庫。[3-clause?BSD](http://directory.fsf.org/wiki/License:BSD_3Clause)。[官網](http://www.nlnetlabs.nl/projects/ldns/index.html)

*???libcurl:一個客戶端的?URL?轉換庫,支持多種格式。[curl?license](http://curl.haxx.se/docs/copyright.html)。[官網](http://curl.haxx.se/libcurl/)

*???LibEtPan:一個郵件庫,支持?IMAP,SMTP,POP?和?NNTP?網絡協議。[3-clause?BSD](http://directory.fsf.org/wiki/License:BSD_3Clause)。[官網](https://github.com/dinhviethoa/libetpan)

*???libev:一個事件驅動庫。[FreeBSD](http://directory.fsf.org/wiki?title=License:FreeBSD?"License:FreeBSD").[官網](http://software.schmorp.de/pkg/libev.html)

*???[libevent](http://hao.jobbole.com/libevent/):一個在網絡服務器中事件驅動庫的可替代品。[3-clause?BSD](http://directory.fsf.org/wiki/License:BSD_3Clause)。[官網](http://libevent.org/)

*???libgss:通用安全服務。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?或更高版本。[官網](https://gnu.org/software/gss/)

*???libhttpd:一個給應用或嵌入式設備添加基本?Web?服務器功能的庫。[GNU?GPL2](http://www.gnu.org/licenses/gpl.html)。[官網](http://www.hughes.com.au/products/libhttpd/)

*???libidn:Stringprep,Punycode?和?IDNA?規范的實現。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?或更高版本。[官網](https://gnu.org/software/libidn/)

*???libmicrohttpd:一個迷你庫,可作為其他應用的一部分,讓運行?HTTP?服務器變得簡單。[GNU?LGPL2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)?或更高版本。[官網](https://gnu.org/software/libmicrohttpd/)

*???libsoup:一個?GNOME?HTTP?客戶端/服務器庫,使用了?GObject。[GNU?LGPL2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)。[官網](https://wiki.gnome.org/action/show/Projects/libsoup?action=show&redirect=LibSoup)

*???lwan:一個實驗性,可擴展,高性能的?HTTP?服務器。?[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)。[官網](https://github.com/lpereira/lwan)

*???[mongoose](http://hao.jobbole.com/mongoose/):基于?C?的嵌入式?Web?服務器。[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)。[官網](https://github.com/cesanta/mongoose)

*???nanomsg:一個基于?C?的?ZeroMQ?實現。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](https://github.com/nanomsg/nanomsg)

*???onion:易于使用的?HTTP?服務器庫。[Apache2.0](http://directory.fsf.org/wiki/License:Apache2.0)。[官網](https://github.com/davidmoreno/onion)

*???OpenSSL:一個?SSL?和?TLS?協議的實現,還包括一個加密庫。[Dual?Licensed?under?the?OpenSSL?License?and?the?SSLeay?License](https://www.openssl.org/source/license.html)。[官網](https://www.openssl.org/)

*???oSip:一個基于?C?的?SIO?實現,沒有額外的依賴。[GNU?LGPLv2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)?或更高版本。[官網](https://gnu.org/software/osip/)

*???s2n:一個?C99?標準的?TLS/SSL?協議的實現,簡單,快并且以安全優先。[Apache2.0](http://directory.fsf.org/wiki/License:Apache2.0)。[官網](https://github.com/awslabs/s2n)

*???socket99:BSD?套接字?API?的?C99?封裝。[ISC](http://directory.fsf.org/wiki/License:ISC)。[官網](https://github.com/silentbicycle/socket99)

*???Tox:一個通信平臺,被設計為?Skype?殺手。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)。[官網](https://github.com/irungentoo/toxcore)

*???twitc:一個與?Twitter?OAuth?API?交互的迷你?C?庫。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](https://github.com/sinemetu1/twitc)

?

<h3?id="web-frameworks">Web框架</h3>

?

*???balde:一個基于?GLib?的?C?微框架。?[GNU?LGPLv2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)。[官網](https://github.com/balde/balde)

?

<h2?id="#numerical">數值計算</h2>

?

*???apophenia:一個用于統計和科學計算的庫。[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)。[官網](https://github.com/b-k/apophenia)

*???ATLAS:自動調諧線性代數軟件。?[3-clause?BSD](http://directory.fsf.org/wiki/License:BSD_3Clause)。[官網](http://math-atlas.sourceforge.net/)

*???BLAS:Basic?Linear?Algebra?Subprograms;提供向量和矩陣操作的一系列操作。[BLAS?license](http://www.netlib.org/blas/#_licensing)。[官網](http://www.netlib.org/blas/)

*???Cuba:一個計算多維的數值積分的庫。?[GNU?LGPLv3](http://www.gnu.org/licenses/lgpl.html)。[官網](http://www.feynarts.de/cuba/)

*???FFTW:The?Fastest?Fourier?Transform?in?the?West;一個高度優化的快速傅立葉變換例程。[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)?或更高版本。[官網](http://www.fftw.org/)

*???FLINT:Fast?Library?for?Number?Theory;一個支持算數,多項式,冪級數和矩陣等。[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)?或更高版本。[官網](http://flintlib.org/)

*???GLPK:GNU?Linear?Programming?Kit;一個求解大規模線性規劃,混合整數規劃和其他相關問題。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?或更高版本。[官網](https://gnu.org/software/glpk/)

*???GMP:GNU?Multple?Precision?Arithmetic?Library;一個支持任意精度計算的庫。雙重許可?[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)?和?[GNU?LGPLv3](http://www.gnu.org/licenses/lgpl.html)。[官網](https://gmplib.org/)

*???GNU?MPC:一個支持復雜數字計算的庫。[GNU?LGPL3](http://www.gnu.org/licenses/lgpl.html)?或更高版本。[官網](http://www.multiprecision.org/index.php?prog=mpc&page=home)

*???GNU?MPFR:一個支持任意精度的浮點數計算庫。[GNU?LGPL3](http://www.gnu.org/licenses/lgpl.html)?或更高版本(大多數最近版本),[GNU?LGPL2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)?或更高版本(2.4.x?之前)。[官網](http://mpfr.loria.fr/index.html)

*???GNU?MPRIA:一個支持多精度合理區間運算的可擴展數學庫。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?或更高版本。[官網](https://gnu.org/software/mpria/)

*???GSL:The?GNU?Scientific?Library;一個精確的數值計算庫。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)。[官網](http://www.gnu.org/software/gsl/)

*???KISS?FFT:一個非常快的傅里葉變換庫。[3-clause?BSD](http://directory.fsf.org/wiki/License:BSD_3Clause)。[官網](http://sourceforge.net/projects/kissfft/)

*???LAPACKE:一個?[LAPACK](http://www.netlib.org/lapack/)?的?C?接口。[3-clause?BSD](http://directory.fsf.org/wiki/License:BSD_3Clause)。[官網](http://www.netlib.org/lapack/lapacke.html)

*???PARI/GP:一個數論的計算機代數系統,包括?C?編譯器。[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)?或更高版本。[官網](http://pari.math.u-bordeaux.fr/)

*???PETSc:一系列數據結構和例程,用于計算由偏微分方程建模的應用程序的可擴展并行解。[FreeBSD](http://directory.fsf.org/wiki?title=License:FreeBSD?"License:FreeBSD")。[官網](http://www.mcs.anl.gov/petsc/)

*???SLEPc:一個在并行計算機中的解決大型,稀疏特征值問題的軟件庫。[LGPL3](http://www.gnu.org/licenses/lgpl.html)[官網](http://slepc.upv.es/)

*???Yeppp!:非常快,SIMD?優化的數學庫。?[3-clause?BSD](http://directory.fsf.org/wiki/License:BSD_3Clause)。[官網](http://www.yeppp.info/)

?

<h2?id="parallel-programming">并行編程</h2>

?

*???cchan:一個線程間通信通道構建的小型庫。公共領域。[官網](http://repo.hu/projects/cchan/)

*???ck:并發原語,安全內存回收機制和非阻塞數據結構。[FreeBSD](http://directory.fsf.org/wiki?title=License:FreeBSD?"License:FreeBSD")。[官網](https://github.com/concurrencykit/ck)

*???mill:用?C?寫成的?Go?風格并發。[X11](https://directory.fsf.org/wiki/License:X11)[官網](http://libmill.org/)

*???MPICH:MPI?的另一種實現。[MPICH?licence](http://git.mpich.org/mpich.git/blob_plain/6aab201f58d71fc97f2c044d250389ba86ac1e3c:/COPYRIGHT)。[官網](http://www.mpich.org/)

*???OpenMP:一組?C?編譯指令,使其易于并行化代碼。標準(許可不適用)。[官網](http://openmp.org/wp/about-openmp/)

*???OpenMPI:一個消息傳輸接口實現。[3-clause?BSD](http://directory.fsf.org/wiki/License:BSD_3Clause)。[官網](https://github.com/open-mpi/ompi)

*???PETSc:一系列數據結構和例程,用于計算由偏微分方程建模的應用程序的可擴展并行解。[FreeBSD](http://directory.fsf.org/wiki?title=License:FreeBSD?"License:FreeBSD")。[官網](http://www.mcs.anl.gov/petsc/)

*???pth:一個非搶占式優先級調度多線程執行的可擴展實現。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?或者更高版本。[官網](https://gnu.org/software/pth/)

*???pthreads:POSIX?線程庫。標準(沒有適用的許可)。[官網](https://en.wikipedia.org/wiki/POSIX_Threads)

*???SLEPc:一個在并行計算機中的解決大型,稀疏特征值問題的軟件庫。[GNU?LGPL3](http://www.gnu.org/licenses/lgpl.html)。[官網](http://slepc.upv.es/)

*???TinyCThread:一個可擴展,小型的?C11?標準線程?API?實現。[zlib](http://directory.fsf.org/wiki/License:Zlib)。[官網](https://tinycthread.github.io/)

?

<h2?id="regex">正則表達式</h2>

?

>?有些人遇到問題時就會想:“啊,我知道了,我可以使用正則表達式”。于是現在他們有了兩個問題。-?Jamie?Zawinski。

?

*???PCRE:與?Perl?5?正則表達式完全相同的實現。[3-clause?BSD](http://directory.fsf.org/wiki/License:BSD_3Clause)。[官網](http://www.pcre.org/)

*???SLRE:Super?Light?Regular?Expression?library;一個?Perl?正則表達式語法子集的迷你實現。[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)。[官網](https://github.com/cesanta/slre)

*???TRE:一個與?POSIX?一致,充滿特色的正則表達式庫。[FreeBSD](http://directory.fsf.org/wiki?title=License:FreeBSD?"License:FreeBSD")。[官網](https://github.com/laurikari/tre/)

*???PS:關于正則表達式,deerchao?有篇文章不錯?《[正則表達式?30?分鐘入門教程](http://blog.jobbole.com/96708/)》

?

<h2?id="serialization">序列化</h2>

?

*???c-capnproto:一個?Cap'n?Proto?序列化協議的實現。?[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](https://github.com/jmckaskill/c-capnproto)

*???cmp:一個?[MessagePack](http://msgpack.org/)?序列化協議的實現。?[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](https://github.com/camgunz/cmp)

*???libavro:一個?Avro?數據序列化系統的?C?實現。[Apache2.0](http://directory.fsf.org/wiki/License:Apache2.0)。[官網](http://avro.apache.org/docs/current/api/c/index.html#_introduction_to_avro_c)

*???mpack:另一個?[MessagePack](http://msgpack.org/)?序列化協議的實現。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](https://github.com/ludocode/mpack)

*???protobuf-c:一個?Google?Protocol?Buffer?的?C?實現。[FreeBSD](http://directory.fsf.org/wiki?title=License:FreeBSD?"License:FreeBSD")。[官網](https://github.com/protobuf-c/protobuf-c)

*???xdr:External?Data?Representation;數據序列化標準。標準(沒有可用許可)。[官網](https://en.wikipedia.org/wiki/External_Data_Representation)

?

<h2?id="source-code-collections">源碼集錦</h2>

?

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

?

*???CCAN:模仿?Perl?的?CPAN,這是一個大的實用?C?代碼集合。完整的列表在?[這里](http://ccodearchive.net/list.html)。多種許可(所有都是免費軟件)。[官網](http://ccodearchive.net/)

*???clib:一個?C?軟件包管理器,配備了一堆自己的庫。?[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](https://github.com/clibs/clib)

*???gnulib:通用?GNU?代碼的集合。多種許可證,全部免費。[官網](https://www.gnu.org/software/gnulib/)

*???libdjb:做各種事情的庫的集合。(顯然)公共領域。[官網](http://www.fefe.de/djb/)

?

<h2?id="standard-libraries">標準庫</h2>

?

下面包括了標準?C?庫。

?

*???Bionic:谷歌為?Android?開發的?C?標準庫。[3-clause?BSD](http://directory.fsf.org/wiki/License:BSD_3Clause)。[官網](https://github.com/android/platform_bionic)

*???dietlibc:標準?C?庫,可能是最小的二進制文件。[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)。[官網](http://www.fefe.de/dietlibc/)

*???glibc:GNU?C?庫。一個?C?標準庫的實現。?[GNU?LGPL2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)。[官網](http://www.gnu.org/software/libc/)

*???musl:標準?C?庫,兼容?POSIX?2008?和?C11,為靜態鏈接設計。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](http://www.musl-libc.org/)

?

<h2?id="string-manipulation">字符串處理</h2>

?

*???bstrlib:更好的字符串處理庫。雙重許可,[3-clause?BSD](http://directory.fsf.org/wiki/License:BSD_3Clause)?或?[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)。[官網](http://bstring.sourceforge.net/)

*???ICU:International?Components?for?Unicode;提供?Unicode?支持的庫。?[ICU?license](http://source.icu-project.org/repos/icu/icu/trunk/license.html)。[官網](http://site.icu-project.org/)

*???libunistring:處理?Unicode?字符串的?C?庫。[GNU?LGPL3](http://www.gnu.org/licenses/lgpl.html)。[官網](https://gnu.org/software/libunistring/)

*???libgiconv:文本轉換庫。[GNU?LGPL2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)(庫),[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)(編碼轉換程序)。[官網](https://gnu.org/software/libiconv/)

*???SDS:Simple?Dynamic?Strings;一個用簡單方式處理?C?字符串的庫,而且兼容標準?C?字符串函數。可通過?[clib](https://github.com/clibs/clib)?使用。[FreeBSD](http://directory.fsf.org/wiki?title=License:FreeBSD?"License:FreeBSD")。[官網](https://github.com/antirez/sds)

*???shoco:一個小型文本壓縮器。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](https://github.com/Ed-von-Schleck/shoco)

*???smaz:一個高效的字符串壓縮庫。[3-clause?BSD](http://directory.fsf.org/wiki/License:BSD_3Clause).[官網](https://github.com/Ed-von-Schleck/shoco)

?

<h2?id="testing">測試工具</h2>

?

*???CHEAT:一個非常簡單的單元測試框架。[FreeBSD](http://directory.fsf.org/wiki?title=License:FreeBSD?"License:FreeBSD")。[官網](https://github.com/Tuplanolla/cheat)

*???Check:一個?C?的單元測試框架。[GNU?LGPL2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)。[官網](http://check.sourceforge.net/)

*???CMock:一個?C?的?mock/stub?生成器。[官網](https://github.com/ThrowTheSwitch/CMock)

*???cmocka:一個支持?mock?對象的單元測試框架。[Apache2.0](http://directory.fsf.org/wiki/License:Apache2.0)。[官網](https://cmocka.org/)

*???Criterion:一個?KISS?風格,非侵入式的?C?測試框架。[Expat](http://directory.fsf.org/wiki/License:Expat)[官網](https://github.com/Snaipe/Criterion)

*???CUnit:另一個?C?的單元測試框架。[GNU?LGPL2.0](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)。[官網](http://cunit.sourceforge.net/)

*???minunit:極小的?C?單元測試框架。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](https://github.com/siu/minunit)

*???Unity:一個簡單的?C?單元測試框架。?[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](https://github.com/ThrowTheSwitch/Unity)

?

<h2?id="text-editor-extensions">文本編輯器擴展</h2>

?

在幾乎任何像樣的文本編輯器支持?C?之際,有一些擴展,讓編輯器更加令人愉快。下面是根據編輯器分目錄的。

?

###?Emacs

?

*???CEDET:Collection?of?Emacs?Development?Environment?Tools;給?Emacs?提供一種類似?IDE?的特點,是內建的。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?或更高版本。[官網](http://cedet.sourceforge.net/)

*???Flycheck:現代語法檢查。對于?C,它可以使用?GCC?或者?Clang?作為后端。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?或更高版本。[官網](https://github.com/flycheck/flycheck)

*???Yasnippet:一個模板系統,支持?C?的通用代碼片段。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?或更高版本。[官網](https://github.com/capitaomorte/yasnippet)

?

###?Vim

?

*???Syntastic:語法檢查和語言分析。[Do?What?The?Fuck?You?Want?To?license](https://github.com/scrooloose/syntastic/blob/master/LICENCE)。[官網](https://github.com/scrooloose/syntastic)

*???[YouCompleteMe](http://hao.jobbole.com/youcompleteme/):一個?Vim?的代碼補全引擎。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)。[官網](http://valloric.github.io/YouCompleteMe/)

?

<h2?id="tools">工具</h2>

?

下面是實用的程序列表,包括了幫助你編寫和調試?C?代碼的庫或者編譯器,不包括編輯器。

?

*???adlint:一個靜態分析器。支持完全的?C89?標準和部分?C99?標準。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?或更高版本。[官網](https://yanoh.github.io/adlint/)

*???Artistic?Style:一個支持?C?的小而快的自動化代碼格式化工具。[GNU?LGPL3](http://www.gnu.org/licenses/lgpl.html)。[官網](http://astyle.sourceforge.net/)

*???address-sanitizer:一個很快的內存錯誤探測器。[Apache2.0](http://directory.fsf.org/wiki/License:Apache2.0)。[官網](https://github.com/google/sanitizers)

*???[biicode](http://hao.jobbole.com/biicode/):一個現代的?C?依賴管理器。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](https://biicode.github.io/biicode/)

*???c:在命令行中編譯和執行?C?腳本,也支持?shebang。?[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](https://github.com/ryanmjacobs/c)

*???c99sh:用?hash-bang?運行?C?文件。[FreeBSD](http://directory.fsf.org/wiki?title=License:FreeBSD?"License:FreeBSD")。[官網](https://github.com/RhysU/c99sh)

*???CBMC:C?Bounded?Model?Checker;一個檢查數組邊界,指針安全和用戶自定義斷言的工具。[Original?BSD](https://directory.fsf.org/wiki/License:BSD_4Clause)。[官網](http://www.cprover.org/cbmc/)

*???cdecl:一個在線服務,能夠把?C?的聲明翻譯成英文,反向也可以。公共領域。[官網](https://github.com/mpv-player/mpv)

*???cinclude2dot:在?C?項目中使用?Graphviz?的圖像包含依賴。任官網?GNU?GPL?版本(根據文件中的要求)[官網](https://www.flourish.org/cinclude2dot/)

*???[Complexity](http://hao.jobbole.com/complexity/):一個測量?C?代碼復雜性的工具。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?或更高版本。[官網](https://www.gnu.org/software/complexity/)

*???DDD:各種命令行調試器的圖形前端。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?或更高版本。[官網](https://www.gnu.org/software/ddd/ddd.html)

*???fab:讓每次構建都最優的構建系統。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)。[官網](http://fabutil.org/)

*???GDB:The?GNU?Project?debugger;一個?C?調試器。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?或更高版本。[官網](http://www.gnu.org/software/gdb/)

*???Glade:一個讓?TK+?GUIs?開發更快的?RAD?工具。[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)。[官網](https://glade.gnome.org/)

*???GMSL:GNU?Make?Standard?Library;一個?GNU?Make?額外功能的集合。[3-clause?BSD](http://directory.fsf.org/wiki/License:BSD_3Clause)。[官網](http://gmsl.sourceforge.net/)

*???GNU?Global:一個?C?的源碼標簽工具。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)。[官網?Global](https://www.gnu.org/software/global/)

*???gprof:一個性能分析工具。GNU?binutils?的一部分。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?或更高版本。[官網](http://www.gnu.org/software/binutils/)

*???Highlight:把源碼轉化為高亮的格式化文本。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)。[官網](http://www.andre-simon.de/index.php)

*???include-what-you-use:幫助程序員發現不必要的包含和提供解決他們的建議。基于?LLVM/Clang(只能與它一起工作)。[NCSA](http://directory.fsf.org/wiki/License:IllinoisNCSA)。[官網](https://github.com/include-what-you-use/include-what-you-use)

*???indent:自動格式化?C?代碼,讓它更容易閱讀。也能把一種風格的代碼轉化為另一種。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?或更高版本。[官網](https://www.gnu.org/software/indent/)

*???Make:一個控制程序的可執行和其他非代碼文件的生成的工具。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?或更高版本(鏈接到?GNU?的實現)。[官網](https://www.gnu.org/software/make/)

*???qo:無需分開的配置文件的構建系統。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](https://github.com/andlabs/qo)

*???rr:記錄非確定執行來允許可確定調試的調試器。[FreeBSD](http://directory.fsf.org/wiki?title=License:FreeBSD?"License:FreeBSD")。[官網](http://rr-project.org/)

*???tup:一個很快,基于文件,跨平臺的構建系統。[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)。[官網](http://gittup.org/tup/index.html)

*???unifdef:移除?#ifdef?和?#if?指令包含的文本,不會改變文件的其他部分。[3-clause?BSD](http://directory.fsf.org/wiki/License:BSD_3Clause)?和?[FreeBSD](http://directory.fsf.org/wiki?title=License:FreeBSD?"License:FreeBSD")。[官網](http://dotat.at/prog/unifdef/)

*???Valgrind:各種動態分析工具,包括一個內存泄漏檢測工具。[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)。[官網](http://www.valgrind.org/)

?

<h2?id="utilities">其他工具</h2>

?

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

?

*???ApeTagLibs:APEv2?標簽的?C?庫。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](https://github.com/jeremyevans/ape_tag_libs/tree/master/c)

*???bfd:處理二進制對象文件的庫。GNU?binutils?的一部分。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?或更高版本。[官網](http://sourceware.org/binutils/docs/bfd/)

*???[ccv](http://hao.jobbole.com/ccv/):基于C語言、帶緩存機制的現代計算機視覺核心庫。?[3-clause?BSD](http://directory.fsf.org/wiki/License:BSD_3Clause)。[官網](https://github.com/liuliu/ccv)

*???[cf4ocl](http://hao.jobbole.com/cf4ocl/):The?C?Framework?for?OpenCL;一個跨平臺面向對象框架,用于開發和用基準問題測試?[OpenCL](https://www.khronos.org/opencl/)?項目。[GNU?LGPL3](http://www.gnu.org/licenses/lgpl.html)(庫),?[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)(其他代碼)。[官網](https://fakenmc.github.io/cf4ocl/)

*???CommonMark:CommonMark?規范的?C?實現。[Variety?of?licenses,?all?free](https://github.com/jgm/CommonMark/blob/master/LICENSE)。[官網](https://github.com/jgm/CommonMark)

*???CException:異常的?C?實現。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](https://github.com/ThrowTheSwitch/CException)

*???docopt.c:命令行選項解析器的?C?實現。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](https://github.com/docopt/docopt.c)

*???dyncall:另一個外部函數接口庫。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](http://www.dyncall.org/)

*???FANN:Fast?Artifical?Neural?Network?library;一個神經網絡的實現。[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)。[官網](http://leenissen.dk/fann/wp/)

*???Firm:一個?C?庫,提供了基于圖像中間表示,優化和適合編譯器的匯編代碼生成。配備了?C?的前端例子,使用相同的許可。[GNU?LGPLv2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)。[官網](http://pp.ipd.kit.edu/firm/Index)

*???gjrand:隨機數字生成的例程庫。[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)?或者?[GNU?GPLv3](http://www.gnu.org/licenses/gpl.html)(用戶的選擇)。[官網](http://sourceforge.net/projects/gjrand/)

*???GNU?FreeIPMI:一個帶內和帶外的?IPMI?實現。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)。[官網?FreeIPMI](https://gnu.org/software/freeipmi/index.html)

*???GNU?gperf:一個完美的哈希函數生成器,提供一系列的字符串。輸出?C?代碼。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?或更高版本。[官網](https://www.gnu.org/software/gperf/)

*???GNU?Libffcall:一個構建外部函數接口庫的集合。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?或更高版本。[官網](https://gnu.org/software/libffcall/)

*???gperftools:一系列測量和提高性能的實用工具集合。[3-clause?BSD](http://directory.fsf.org/wiki/License:BSD_3Clause)。[官網](https://github.com/gperftools/gperftools)

*???hammer:二進制格式的解析器組合。[GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html).[官網](https://github.com/abiggerhammer/hammer)

*???Hans?Boehm?GC:C?的垃圾收集器?如果我用了不要介意。多種許可證,完全免費。[官網](http://www.hboehm.info/gc/)

*???huffandpuff:一個極小的哈夫曼編碼器和解碼器。公共領域。[官網](https://github.com/adamierymenko/huffandpuff)

*???iniparser:一個?.ini?文件的解析器。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](https://github.com/ndevilla/iniparser)

*???jemalloc:一個?malloc?實現,著重于段錯誤的避免和可擴展并發支持。[FreeBSD](http://directory.fsf.org/wiki?title=License:FreeBSD?"License:FreeBSD")。[官網](http://www.canonware.com/jemalloc/)

*???jwHash:一個很快的哈希表實現。[Apache2.0](http://directory.fsf.org/wiki/License:Apache2.0)。[官網](https://github.com/watmough/jwHash)

*???kdtree:KD-trees?的簡單庫。[3-clause?BSD](http://directory.fsf.org/wiki/License:BSD_3Clause)。[官網](https://github.com/jtsiomb/kdtree)

*???Kitsune:高效,通用的框架,用于軟件的動態升級。?[GNU?LGPL3](http://www.gnu.org/licenses/lgpl.html)?或更高版本。[官網](http://kitsune-dsu.com/)

*???libavl:一個包括各種自平衡二叉樹的庫。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?或更高版本。[官網](http://adtinfo.org/libavl.html/index.html)

*???libbson:BSON?實用庫。[Apache2.0](http://directory.fsf.org/wiki/License:Apache2.0)。[官網](https://github.com/mongodb/libbson)

*???libCello:引入高級語言給?C?的庫。[官網](http://libcello.org/)

*???libcox:一個運行跨平臺系統調用和跨系統標準工具的庫。[FreeBSD](http://directory.fsf.org/wiki?title=License:FreeBSD?"License:FreeBSD")。[官網](http://libcox.net/)

*???libffi:輕量級的外部函數接口庫。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](https://github.com/atgreen/libffi)

*???libgit2:Git?的純?C?實現。[GNU?GPL2?only,?with?a?linking?exception](https://github.com/libgit2/libgit2/blob/master/COPYING)。[官網](https://libgit2.github.com/)

*???libimobiledevice:一個跨平臺協議庫,用于與?iThings?通信。[GNU?LGPLv2.1](http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html)?或更高版本(庫),[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)?或更高版本(工具)。[官網](https://github.com/libimobiledevice/libimobiledevice)

*???libmpv:音樂播放庫。編譯的時候加入?`./waf?configure?--disable-cplayer?--enable-libmpv-shared`?來避免生成音樂播放器。[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)?或更高版本。[官網](https://github.com/mpv-player/mpv)

*???libnfc:一個平臺獨立的?NFC?庫。[GNU?LGPL3](http://www.gnu.org/licenses/lgpl.html)。[官網](https://github.com/nfc-tools/libnfc)

*???[libPhenom](http://hao.jobbole.com/libphenom/):事件框架,用于構建高擴展和高性能系統。[Apache2.0](http://directory.fsf.org/wiki/License:Apache2.0)。[官網](http://facebook.github.io/libphenom/index.html)、[GitHub](https://github.com/facebook/libphenom)

*???libsoundio:跨平臺,實時音頻輸入輸出的庫,有很多種后端。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](https://github.com/andrewrk/libsoundio)

*???libucl:通用配置庫解析器。[FreeBSD](http://directory.fsf.org/wiki?title=License:FreeBSD?"License:FreeBSD")。[官網](https://github.com/vstakhov/libucl)

*???libudp:一個統一設計模式的?C?實現。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?或更高版本。[官網](https://notabug.org/koz.ross/libudp)

*???libuv:跨平臺異步?I/O。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](https://github.com/libuv/libuv)

*???libYAML:一個?YAML?1.1?解析器和發射器。?[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](http://www.pyyaml.org/wiki/LibYAML)

*???lzo:一個很快的數據壓縮庫。[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)。[官網](http://www.oberhumer.com/opensource/lzo/)

*???mpc:解析器組合庫。[FreeBSD](http://directory.fsf.org/wiki?title=License:FreeBSD?"License:FreeBSD")。[官網](https://github.com/orangeduck/mpc)

*???ncurses:彩色的終端?UI?庫。[GNU?GPL3](http://www.gnu.org/licenses/gpl.html)?或更高版本。[官網](https://gnu.org/software/ncurses/)

*???nope.c:一個基于?C?語言,超級輕量級的軟件平臺,用于可擴展服務端和網絡應用的開發(想想?C?程序員的?nodejs)。[官網](https://github.com/riolet/nope.c)

*???pbc:一個協議緩沖庫。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](https://github.com/cloudwu/pbc)

*???rabbitmq-c:[RabbitMQ](http://www.rabbitmq.com/)?的客戶端庫。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](https://github.com/alanxz/rabbitmq-c)

*???Ragel:為編譯C的狀態機的DSL。[GNU?GPL2.1](http://www.gnu.org/licenses/old-licenses/gpl-2.0.html)。[官網](http://www.colm.net/open-source/ragel/)

*???uthash:哈希表實現,允許已經存在的數據結構很容易地存在哈希表里面。[1-clause?BSD](http://troydhanson.github.io/uthash/license.html)。[官網](http://troydhanson.github.io/uthash/)

*???Viola:libCello?的簡化版本。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](https://github.com/eatonphil/Viola)

*???zlib:一個相當漂亮卻精致不張揚的壓縮庫。[3-clause?BSD](http://directory.fsf.org/wiki/License:BSD_3Clause)。[官網](https://github.com/madler/zlib)

*???[Sundown](http://hao.jobbole.com/sundown/):一個用C編寫的符合標準的、快速的、安全的源碼解析器。[官網](https://github.com/vmg/sundown)

?

<h2?id="xml">XML</h2>

?

>?“XML?是垃圾。真的,沒有任何借口。XML?對人類不友好的,甚至對于電腦來說也是一場災難。根官網?-Linus?Torvalds

?

*???[Expat](http://hao.jobbole.com/expat/):面向流的?XML?解析器。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](http://www.libexpat.org/)

*???libxml2:一個符合標準,輕量級的?XML?解析器。[Expat](http://directory.fsf.org/wiki/License:Expat)。[官網](http://xmlsoft.org/)

*???[mini-xml](http://hao.jobbole.com/mini-xml/):小型?XML?讀寫庫。沒有?C?標準庫的依賴。[GNU?LGPL2.1?with?static?linking?exception](http://svn.msweet.org/mxml/trunk/COPYING)。[官網](http://www.msweet.org/projects.php?Z3)

?

<h2?id="resources-2">其他資源</h2>

?

<h3?id="influential-books">有影響力的書</h3>

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

*?待補充

?

<h3?id="websites-blogs">知名網站/博客</h3>

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

<h4>中文</h4>

?

*?待補充

?

<h4>英文</h4>

?

*?待補充

?

<h3?id="weibo-weixin">微信公眾號</h3>

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

<br><img?src="http://ww1.sinaimg.cn/small/63918611gw1epb2c4w55aj2046046t8t.jpg"?width=150?height=150>

?

總結

以上是生活随笔為你收集整理的C 语言资源大全中文版的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。