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

C 語言資源大全中文版

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

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

我們要做什麼?

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

如何參與本專案?

從下面的目錄來看,本專案的工作量小不了,所以非常期待能有更多程式設計師一起來參與。

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

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

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

本專案的參與者

  • 維護者:

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

目錄

構建系統

下面是一些 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 庫。公共領域。
  • libcstl:標準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

圖形

GUI

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

  • 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

Web框架

數值計算

  • 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。

相關推薦

C 語言資源大全中文版

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

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

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

C 語言資源大全

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

C++ 資源大全中文版

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

C語言——操作符大全

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

Python 資源大全中文版【2018-11-21】

我想很多程式設計師應該記得 GitHub 上有一個 Awesome - XXX 系列的資源整理。awesome-python 是 vinta 發起維護的 Python 資源列表,內容包括:Web 框架、網路爬蟲、網路內容提取、模板引擎、資料庫、資料視覺化、圖片處理、文字處理、自然語言處理、機

MySQL 資源大全中文版

客戶端 erp dump galera connector 重要 trab 需要 文檔 原文地址: https://github.com/jobbole/awesome-mysql-cn 我想很多程序員應該記得 GitHub 上有一個 Awesome - XXX 系

福利來了,iOS資源大全中文版

Chameleon:一個 iOS 效能強大的輕量級扁平化顏色框架,可以用於 Objective-C 和 Swift。★官網ActionSheetPicker-3.0:為 iOS App 快速製作一個下拉 UIPickerView / ActionSheet 功能。官網FlatUIKit:適用於 iOS 的

TensorFlow 資源大全中文版

jtoy 發起整理的 TensorFlow 資源,包含一些很棒的 TensorFlow 工程、庫、專案等。 什麼是TensorFlow? TensorFlow 是一個採用資料流圖(data flow graphs),用於數值計算的開源軟體庫。節點(Nodes)在圖中

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

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

Linux 優秀軟體資源大全中文版

介紹 Awesome-Linux-Software 是由 VoLuong 發起並維護的 Linux 軟體資源列表。該列表收集了許多在 Linux 平臺下非常棒的軟體、實用工具以及其它相關資料,方便使用者或開發者查閱。 Linux 軟體資源大全中文版

github上的開發資源大全中文版

awesome list 收集各種awesome。 awesome的源頭在這裡:awesome,後來發展了各種各樣的avesome專案。不過資源都是英文的,不太方便國內同學檢視,我這裡整理了一些中文的avesome專案。 參與貢獻

【翻譯】Awesome R資源大全中文版來了,全球最火的R工具包一網打盡,超過300+工具,還在等什麼?

0.前言   雖然很早就知道R被微軟收購,也很早知道R在統計分析處理方面很強大,開始一直沒有行動過。。。直到   直到12月初在微軟技術大會,看到我軟的工程師演示R的使用,我就震驚了,然後最近在網上到處瞭解和爬一些R的資料,看著看著就入迷了,這就是個大寶庫了,以前怎麼沒發現,看來還是太狹隘了。直到前幾

c語言錯誤大全

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

DotNet 資源大全中文版(Awesome最新版)

Awesome系列的.Net資源整理。awesome-dotnet是由quozd發起和維護。內容包括:編譯器、壓縮、應用框架、應用模板、加密、資料庫、反編譯、IDE、日誌、風格指南等。 演算法與資料結構(Algorithms and Data structures) Algo

史詩級Java資源大全中文版

網格 mail box 即使 程序 搜索 組裝 web開發框架 標準 本文來自GitHub 上 Awesome - java 系列的資源整理。awesome-java 就是 akullpp 發起維護的 Java 資源列表,內容包括:構建工具、數據庫、框架、模板、安全、代碼分

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

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

C語言學習資源大全

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

[轉]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