1. 程式人生 > >C 語言資源大全

C 語言資源大全

koz.ross 維護的一個 C 語言資源列表,包括了:構建系統、編譯器、資料庫、加密、初中高的教程/指南、書籍、庫等等。

我們計劃把這個列表中的主要工具資源整理出更詳細的介紹,並收錄到伯樂線上資源頻道。如有你有興趣參加,請加 QQ:50872495。加 Q 時請註明「C語言大全」。// 這不是 QQ 群。

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

  • 英文還不錯,能讀懂英文並用自己的話複述;
  • 在用 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(除了複雜的型別)。 GNU LGPL2.1

加密

資料庫

下面列出了基於 C API 的資料庫和資料儲存

  • LMDB – 一個極快,極簡的嵌入式鍵值對資料儲存系統。newOpenLDAP
  • MariaDB
     – 一個強壯,可擴充套件和可靠的 SQL 伺服器,設計來作為 MySQL 的替代品。3-clause BSD
  • recutils – 一個工具和 C 庫的集合,用於訪問可編輯,純文字的名為 recfiles 的資料庫檔案。GNU GPL3 或更高版本。
  • Redis – 一個先進的鍵值對儲存系統。3-clause BSD
  • 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

編輯器

這些是特別精緻,IDE 型別的編輯器。如果你想要一個程式設計師的文字編輯器,看別的地方。此外,不管你選擇哪一款編輯器,它都支援 C。

環境

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

框架

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

  • APR – Apache Portable Runtime;另一個跨平臺的實用函式庫。Apache2.0
  • CPL – The Common Pipeline Library;一系列詳盡,高效和強壯的軟體工具包。GNU GPL2.1
  • EFL – 一個大型實用資料結構和函式的的集合。多種許可證,完全免費。
  • GLib – 一個便攜,高效和強大的實用函式和資料結構庫。GNU LGPL2.1
  • GIO – 一個現代和易用的 VFS API。[GNU LGPL2.1]。
  • libU – 一個提供基本實用函式的迷你庫,包括記憶體分配,字串處理和日誌功能。
  • PBL – 一個包括實用函式,特色資料結構等的大型庫。GNU LGPL2.1及更高版本(庫),GNU GPL2.1及更高版本(測試程式碼)。
  • qlibc – 一個簡單且強大的 C 庫,當我們想要小且輕的庫時,可作為 Glib 的替代品。qLib license (類似於 FreeBSD).
  • stb – 一系列單檔案 C 庫。公共領域。

遊戲程式設計

引擎

這些作為 C 遊戲程式設計程式碼的例子。

資源

這些是排序過的對遊戲程式設計有用的庫。

  • Allegro – 一個跨平臺,視訊遊戲開發和多媒體庫。zlib
  • Chipmunk2D – 一個快且輕量級的 2D 遊戲物理庫。Expat
  • CSFML – 一個用 C 封裝的 SFMLzlib
  • FreeGLUT – 一個替代性的 OpenGL 實用工具包。允許用 OpenGL 上下文建立和管理視窗。X11
  • GLFW – 一個使用 OpenGL 上下文建立視窗的多平臺庫。zlib
  • libao – 一個有多種輸出的跨平臺音訊庫。GNU GPL2.1及更高版本。
  • SDL – 一個跨平臺庫,通過 OpenGL 提供音訊,鍵盤,滑鼠,操縱桿和圖形硬體的底層訪問。zlib
  • SDL2- 一個跨平臺庫,通過 OpenGL 提供音訊,鍵盤,滑鼠,操縱桿和圖形硬體的底層訪問。這是最新版本。zlib

通用程式設計

  • klib – 小且輕量級的常用演算法和資料結構實現。Expat

影象

影象使用者介面

這些具體來說就是控制元件工具包

  • GTK+ – 一個跨平臺的控制元件工具包。GNU LGPL2.1
  • IUP – 另一個跨平臺的控制元件工具包。Expat
  • Tk – 一個基本控制元件工具包,Tcl/Tk 的一部分。Tcl/Tk License

JSON

  • Jansson – 一個編碼,解碼和處理 JSON 的 C 庫。Expat
  • jsmn – 一個極簡的 JSON 解析器。Expat
  • json-c – 一個處理 JSON 的庫。Expat
  • WJElement – 高階 JSON 處理庫,支援 JSON Schema。任意版本的 LGPL。
  • YAJL – 一個很快的 JSON 流解析 C 庫。ISC

學習,參考和指南

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

線上

參考

初級

中級

高階

自學教程

實體書

參考資料

初級

中級

高階

多媒體

網路

  • asnlc – 一個把 ASN.1 規範轉換為 C 程式碼的編譯器。FreeBSD
  • czmq – 一個 ZeroMQ 的高階繫結。
  • GNU adns – 一個高階,易用,非同步的 DNS 客戶端和實用工具。GNU GPL3 及更高版本。
  • GNU SASL – 一個簡單身份認證和安全層和一些常見 SASL 機制的實現。GNU GPL3 及更高版本。
  • GnuTLS – 一個安全通訊庫,實現了 SSL,TLS 和 DTLS。GNU LGPL2.1 及更高版本。
  • http-parser – 一個 HTTP 請求迴應解析器。Expat
  • ldns – 一個簡化 DNS 程式設計的庫。3-clause BSD
  • LibEtPan – 一個郵件庫,支援 IMAP,SMTP,POP 和 NNTP 網路協議。3-clause BSD
  • libev – 一個事件驅動庫。FreeBSD.
  • 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
  • nanomsg – 一個基於 C 的 ZeroMQ 實現。Expat
  • onion – 易於使用的 HTTP 伺服器庫。Apache2.0
  • oSip – 一個基於 C 的 SIO 實現,沒有額外的依賴。GNU LGPLv2.1 或更高版本。
  • s2n – 一個 C99 標準的 TLS/SSL 協議的實現,簡單,快並且以安全優先。Apache2.0
  • socket99 – BSD 套接字 API 的 C99 封裝。ISC
  • Tox – 一個通訊平臺,被設計為 Skype 殺手。GNU GPL3
  • twitc – 一個與 Twitter OAuth API 互動的迷你 C 庫。Expat

網路框架

數值計算

  • 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.1 和 GNU LGPLv3
  • GNU MPFR – 一個支援任意精度的浮點數計算庫。GNU LGPL3 或更高版本(大多數最近版本),GNU LGPL2.1 或更高版本(2.4.x 之前)。
  • GNU MPRIA – 一個支援多精度合理區間運算的可擴充套件數學庫。GNU GPL3 或更高版本。
  • GSL – The GNU Scientific Library;一個精確的數值計算庫。GNU GPL3
  • PARI/GP – 一個數論的計算機代數系統,包括 C 編譯器。GNU GPL2.1 或更高版本。
  • PETSc – 一系列資料結構和例程,用於計算由偏微分方程建模的應用程式的可擴充套件並行解。FreeBSD
  • SLEPc – 一個在平行計算機中的解決大型,稀疏特徵值問題的軟體庫。GNU LGPL3

並行程式設計

  • cchan – 一個執行緒間通訊通道構建的小型庫。公共領域。
  • ck – 併發原語,安全記憶體回收機制和非阻塞資料結構。FreeBSD
  • mill – 用 C 寫成的 Go 風格併發。X11
  • OpenMP – 一組 C 編譯指令,使其易於並行化程式碼。標準(許可不適用)。
  • 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

序列化

  • c-capnproto – 一個 Cap’n Proto 序列化協議的實現。 Expat
  • cmp – 一個 MessagePack 序列化協議的實現。 Expat
  • mpack – 另一個 MessagePack 序列化協議的實現。Expat
  • protobuf-c – 一個 Google Protocol Buffer 的 C 實現。FreeBSD
  • xdr – External Data Representation;資料序列化標準。標準(沒有可用許可)。

原始碼集錦

相關推薦

C 語言資源大全總結--各種框架各種開源庫

koz.ross 維護的一個 C 語言資源列表,包括了:構建系統、編譯器、資料庫、加密、初中高的教程/指南、書籍、庫等等。 【特別提示】:伯樂線上已經在 GitHub 上發起了C 語言資源大全中文版的整理專案,連結:https://github.com/jobbole/awesome-c-cn。

C 語言資源大全中文版

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

C 語言資源大全

koz.ross 維護的一個 C 語言資源列表,包括了:構建系統、編譯器、資料庫、加密、初中高的教程/指南、書籍、庫等等。我們計劃把這個列表中的主要工具資源整理出更詳細的介紹,並收錄到伯樂線上資源頻道。如有你有興趣參加,請加 QQ:50872495。加 Q 時請註明「C語言大全」。// 這不是 QQ 群。不過

C語言——操作符大全

C語言中的操作符整理 (一)算術操作符 (+)(-)(*)(/)(%) (1)%操作符的兩個運算元必須為整數,返回整除之後的餘數,餘數也為整數。 (2)除%以外的運算子的運算元都可以是任何算術型別。 (3)對於/操作符,兩個實數相除的結果是雙精度實數,兩個整數相除的結果是整數。 (二)關

嘔心瀝血整理C語言指標大全,都在這裡了!

前言 相信大多數的同學都是第一門能接觸到語言是C/C++,其中的指標也是比較讓人頭疼的部分了,因為光是指標都能專門出一本叫《C和指標》的書籍,足見指標的強大。但如果不慎誤用指標,這些指標很大可能就會像惡魔一樣把你的程式給直接搞崩潰。 3個月前,我編寫了一份這些指標都是惡魔嗎?.c的檔

c語言錯誤大全

1: Ambiguous operators need parentheses — 不明確的運算需要用括號括起2: Ambiguous symbol xxx — 不明確的符號3: Argument list syntax error — 引數表語法錯誤4: Array bo

[C++] 分享國外程式設計師的 C++開發資源大全

、Web應用框架、人工智慧、資料庫、圖片處理、機器學習、日誌、程式碼分析等。 標準庫 C++ Standard

C語言學習資源大全

在這裡想比較系統的談談個人對C語言學習方法的理解。分別按照書籍、實驗環境搭建、網路資源來分別介紹,希望能寫的比較完整全面一些,給想學習C語言的朋友一個有價值的參考。 為什麼要學習C語言? 為什麼要學習、使用C語言?為什麼要學習一個可能比自己都歲數大的程式語言? 我在前面如何學習程式語言的部落格文章h

C++ 資源大全中文版

max emp json數據 屬於 online ruby irrlicht cgi orb 標準庫 C++標準庫,包括了STL容器,算法和函數等。 C++ Standard Library:是一系列類和函數的集合,使用核心語言編寫,也是C++ISO自身標準的一

[轉]C語言字符串操作總結大全(超詳細)

轉換 c_str per blog 靜態 母版 們的 set 預留空間 1)字符串操作 strcpy(p, p1) 復制字符串 strncpy(p, p1, n) 復制指定長度字符串 strcat(p, p1) 附加字符串 strncat(p, p1, n) 附加指定長度字

c語言操作文件函數大全

feo ted getch output tell 回寫 cal 移動文件 內存空間 fopen(打開文件)相關函數 open,fclose表頭文件 #include<stdio.h>定義函數 FILE * fopen(const char * path,con

c語言視頻教程下載_java知識分享網_java免費資源下載【www.51dali.cn】

基本 http nag com cheng png 知識分享 資源下載 分享 c語言視頻教程下載【完整版】來源【51dali資料分享網】 下載地址:http://www.51dali.cn/cyuyanjiaocheng/更多自學去c語言視頻教程資料請訪問:www.51da

C++ 資源大全

關於 C++ 框架、庫和資源的一些彙總列表,內容包括:標準庫、Web應用框架、人工智慧、資料庫、圖片處理、機器學習、日誌、程式碼分析等。 標準庫 C++標準庫,包括了STL容器,演算法和函式等。 C++ Standard Library:是一系列類和函式的集合,使用核心語言編寫,也是C+

C語言網路資源

原文出自http://testwp.tk/?p=90 附錄 一C語言網路資源C語言網路資源: C語言標準化組織ISO JTC1/SC22/WG14的主頁,在這裡可以找到ISO C的文件:http://www.open-std.org/jtc1/sc22/wg14/ 《

C語言字串操作總結大全(超詳細) (轉)

轉自部落格園:DoubleLi 1)字串操作 strcpy(p, p1) 複製字串  strncpy(p, p1, n) 複製指定長度字串  strcat(p, p1) 附加字串  strncat(p, p1, n) 附加指定長度字串 

國外程式設計師整理的 C++ 資源大全 (zt)

標準庫 C++標準庫,包括了STL容器,演算法和函式等。 框架 C++通用框架和庫 ASL :Adobe原始碼庫提供了同行的評審和可移植的C++原始碼庫。Boost :大量通用C++庫的集合。BDE :來自於彭博資訊實驗室的開發環境。Cinder:提供專業品質創造性編碼的開源開發社群。Cxxomfor

(更新資源連結)C語言教程視訊-郝斌

本來這篇日誌早就應該更新了,但是因為時間的原因一直拖到了現在,實在不好意思。另外,因為最近把電腦的系統換成了Linux系統,所以原來的"球派筆記"的的主題配置和部分頁面丟失,現在已經在新的系統上安裝了hexo,但是目前沒有條件進行優化配置,後期會慢慢更新。 C語言教程視

C語言~巨集操作大全(巨集定義、內建巨集、__FILE__、__LINE__、##用法)

當然巨集定義非常重要的,它可以幫助我們防止出錯,提高程式碼的可移植性和可讀性等。 下面列舉一些成熟軟體中常用得巨集定義 1,防止一個頭檔案被重複包含 #ifndef COMDEF_H #define COMDEF_H //標頭檔案內容 … #endif

c語言常用函式大全超詳細

太多了就不復制了http://blog.csdn.net/u010258235/article/details/45666851https://zhidao.baidu.com/question/230606797.htmlhttp://blog.csdn.net/qq_36

C語言檔案操作函式大全

clearerr(清除檔案流的錯誤旗標) 相關函式 feof表頭檔案 #include<stdio.h> 定義函式 void clearerr(FILE * stream); 函式說明 clearerr()清除引數stream指定的檔案流所使用的錯誤旗標。返回值 fclose(關閉檔案) 相關函