C語言學習方法學習平臺及項目推薦

      網友投稿 1079 2022-05-29

      1 The Algorithms - C

      C語言實現各種算法,同時也可以學習下算法!

      項目地址:https://github.com/TheAlgorithms/C#the-algorithms---c--mainpage

      2 libhv

      libhv是一個類似于libevent、libev、libuv的跨平臺網絡庫,提供了更簡單的接口和更豐富的協議。詳細介紹見項目README

      精妙小巧跨平臺,簡單實用易上手

      base封裝了很多跨平臺的代碼,如hatomic原子操作、hthread線程、hmutex線程同步,當然這都是基于configure/cmake自動生成的hconfig.h和hplatform.h兩個頭文件中提供的平臺宏、編譯器宏等實現的;

      event模塊則實現了事件循環(包括IO、timer、idle),不同的平臺有不同的實現,如Linux使用epoll,Windows使用IOCP、Mac使用kqueue、Solaris使用evport,感興趣的可以讀一讀event下的源碼;

      http模塊則基于event模塊實現了本世紀最為通用的應用層協議http協議,包括http服務端和客戶端,libhv中examples下提供的httpd,性能可媲美nginx服務;

      libhv是c++編寫HTTP API服務端/客戶端最簡單的庫,沒有之一

      項目地址:https://github.com/ithewei/libhv.git

      3 C語言入門項目

      包括C語言迷宮、24點游戲、奔跑的火柴人、超市管理系統、打字母、電子時鐘、對對碰、俄羅斯方塊、黑白棋、華容道、火車票訂票管理源碼、連連看、商品銷售系統、象棋、超級瑪麗、圖書管理系統、學生成績管理系統.......

      項目地址:https://mp.weixin.qq.com/s/ZUHtQxaahrGjvAZVu5jKKg

      4 C語言超級全面的學習平臺

      學習C語言/C++ 的github,分享C語言/C入門、學習路線、電子書籍推薦與下載、視頻推薦、小項目、干貨文章、筆試面試、C語言/C++ 規范、開源項目等。

      項目地址:https://github.com/tangtangcoding/C-CppLearning

      5 C語言PAT練習

      PAT習題C語言題解。全部用C語言寫,追求代碼高效簡潔。

      項目地址:GitHub - OliverLew/PAT

      6 Learn-Algorithms

      項目主要是 C語言實現算法相關的學習筆記,包括各類知識點,鏈表、隊列、哈希表等等

      項目地址:https://github.com/nonstriater/Learn-Algorithms

      7 Sqlite

      SQLite是一個開源的嵌入式關系數據庫,實現自包容、零配置、支持事務的SQL數據庫引擎。

      不需要一個單獨的服務器進程或操作的系統(無服務器的)。

      SQLite 不需要配置,這意味著不需要安裝或管理。

      一個完整的 SQLite 數據庫是存儲在一個單一的跨平臺的磁盤文件。

      SQLite 是非常小的,是輕量級的,完全配置時小于 400KiB,省略可選功能配置時小于250KiB。

      SQLite 是自給自足的,這意味著不需要任何外部的依賴。

      SQLite 事務是完全兼容 ACID 的,允許從多個進程或線程安全訪問。

      SQLite 支持 SQL92(SQL2)標準的大多數查詢語言的功能。

      SQLite 使用 ANSI-C 編寫的,并提供了簡單和易于使用的 API。

      SQLite 可在 UNIX(Linux, Mac OS-X, Android, iOS)和 Windows(Win32, WinCE, WinRT)中運行。

      項目地址:SQLite Home Page

      8 EasyLogger

      目前EasyLogger支持以下功能:

      日志輸出方式支持串口、Flash、文件等;

      日志內容可包含級別、時間戳、線程信息、進程信息等;

      支持多種操作系統,支持裸機;

      各級別日志支持不同顏色顯示;

      項目地址:https://gitee.com/Armink/EasyLogger

      9 struct2json

      struct2json 是一個開源的C結構體與 JSON 快速互轉庫,它可以快速實現 結構體對象 與 JSON 對象 之間序列化及反序列化要求。快速、簡潔的 API 設計,大大降低直接使用 JSON 解析庫來實現此類功能的代碼復雜度。

      起源

      把面向對象設計應用到C語言中,是當下很流行的設計思想。由于C語言中沒有類,所以一般使用結構體struct充當類,那么結構體變量就是對象。有了對象之后,很多時候需要考慮對象的序列化及反序列化問題。C語言不像很多高級語言擁有反射等機制,使得對象序列化及反序列化被原生的支持。

      對于C語言來說,序列化為 JSON 字符串是個不錯的選擇,所以就得使用 cJSON 這類 JSON 解析庫,但是使用后的代碼冗余且邏輯性差,所以萌生對cJSON庫進行二次封裝,實現一個 struct 與 JSON 之間快速互轉的庫。 struct2json就誕生于此。下面是 struct2json 主要使用場景:

      持久化 :結構體對象序列化為 JSON 對象后,可直接保存至文件、Flash,實現對結構體對象的掉電存儲;

      通信 :高級語言對JSON支持的很友好,例如: Javascript、Groovy 就對 JSON 具有原生的支持,所以 JSON 也可作為C語言與其他語言軟件之間的通信協議格式及對象傳遞格式;

      可視化 :序列化為 JSON 后的對象,可以更加直觀的展示到控制臺或者 UI 上,可用于產品調試、產品二次開發等場景;

      項目地址:https://gitee.com/Armink/struct2json

      10 TencentOS-tiny

      TencentOS tiny主要由一個輕量級RTOS內核+多個物聯網組件構成,,從下到上主要包括:

      CPU庫 :TencentOS tiny支持的CPU IP核架構,當前主要支持ARM Cortex M0/3/4/7,還有現在很火的RISC-V,當然,騰訊物聯網團隊肯定也會支持更多種類更多IP核與開發板。

      驅動管理層 :包括BSP板級支持包,這些東西主要由MCU芯片廠家開發與維護,、HAL硬件抽象、Drivers設備驅動,這部分對于純粹嵌入式開發者來說還是很重要的,肯定會越來越完善的!

      內核 :TencentOS tiny實時內核包括任務管理、實時調度、時間管理、中斷管理、內存管理、異常處理、軟件定時器、鏈表、消息隊列、信號量、互斥鎖、事件標志等模塊,接下來我也將寫一系列TencentOS tiny內核源碼分析的文章,敬請期待吧!

      IoT協議棧 :TencentOS tiny提供lwip、AT Adapter、SAL層,支持不同的網絡硬件,如以太網、串口WIFI、GPRS、NB-IoT、4G等通信模塊。在TCP/IP網絡協議棧上提供常用的物聯網協議棧應用層,如COAP、MQTT,支撐終端業務快速接入騰訊云;

      安全框架 :TencentOS tiny為了確保物聯網終端數據傳輸安全以及設備認證安全,提供了比較完整的安全解決方案。安全框架提供的DTLS和TLS安全協議加固了COAP及MQTT的傳輸層,可確保物聯網終端在對接騰訊云時實現安全認證和數據加密;另外針對低資源的終端硬件,安全框架還提供與騰訊云IoTHub配套的密鑰認證方案,確保資源受限設備也能在一定程度上實現設備安全認證;物聯網安全是非常重要的,這些框架也是必須存在的。

      組件框架 :TencentOS tiny提供文件系統、KV存儲、自組網、JS引擎、低功耗框架、設備框架、OTA、調試工具鏈等一系列組件,這部分我覺得還是很不錯的,期待ing;

      開放API (規劃開發中):TencentOS tiny將在協議中間件和框架層上提供開放API函數,這樣子就能很方便使用中間組件的功能,我是最喜歡這種開發的,不造輪子,能直接使用。簡單來說這個API能快速對接騰訊云,實現終端業務上云的需求,最大程度減少終端物聯網產品開發周期,節省開發成本;

      示例應用 :TencentOS tiny提供的示例代碼,模塊測試代碼等,方便用戶參考使用。

      騰訊云物聯網平臺(圖中最上層的部分):嚴格來說這部分不算TencentOS tiny的框架內容,這是接入平臺層了,騰訊云的物聯網平臺都是提供多種語言的SDK包,當然在嵌入式設備上肯定使用C SDK的,不過總的來說都是很不錯的。

      總的來說TencentOS tiny還是非常不錯的,該有的功能都有,可以考慮使用一下這個操作系統~

      項目地址:https://github.com/Tencent/TencentOS-tiny

      11 ffmpeg

      FFmpeg是一套可以用來記錄、轉換數字音頻、視頻,并能將其轉化為流的開源計算機程序。采用LGPL或GPL許可證。它提供了錄制、轉換以及流化音視頻的完整解決方案。

      項目地址:GitHub - FFmpeg/FFmpeg: Mirror of https://git.ffmpeg.org/ffmpeg.git

      12 Lua

      Lua 很棒,Lua 是巴西人發明的,這些都令我不爽,但是還不至于臉紅,最多眼紅。

      讓我臉紅的是 Lua 的源代碼,百分之一百的 ANSI C,一點都不摻雜。在任何支持 ANSI C 編譯器的平臺上都可以輕松編譯通過。我試過,真是一點廢話都沒有。Lua 的代碼數量足夠小,5.1.4 僅僅 1.5W 行,去掉空白行和注釋估計能到 1W 行。

      項目地址:http://www.lua.org/

      13 cJSON

      cJSON 是C語言中的一個 JSON 編解碼器,非常輕量級,C文件只有 500 多行,速度也非常理想。

      cJSON 也存在幾個弱點,雖然功能不是非常強大,但 cJSON 的小身板和速度是最值得贊賞的。其代碼被非常好地維護著,結構也簡單易懂,可以作為一個非常好的C語言項目進行學習。

      C語言學習方法、學習平臺及項目推薦

      項目地址: http://sourceforge.net/projects/cjson/

      14 CMockery

      cmockery 是 google 發布的用于C單元測試的一個輕量級的框架。它很小巧,對其他開源包沒有依賴,對被測試代碼侵入性小。cmockery 的源代碼行數不到 3K,你閱讀一下 will_return 和 mock 的源代碼就一目了然了。

      主要特點:

      免費且開源,google 提供技術支持;

      輕量級的框架,使測試更加快速簡單;

      避免使用復雜的編譯器特性,對老版本的編譯器來講,兼容性好;

      并不強制要求待測代碼必須依賴 C99 標準,這一特性對許多嵌入式系統的開發很有用

      項目地址:http://code.google.com/p/cmockery/downloads/list

      C 語言 云學院

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:喜大普奔,坂田CBD迎來“云上”深圳地鐵10號線
      下一篇:評估板快速測試-基于TI Sitara Cortex-A9
      相關文章
      不卡一卡二卡三亚洲| 久久精品国产亚洲AV麻豆不卡 | 亚洲国产人成网站在线电影动漫| 麻豆狠色伊人亚洲综合网站| 久久久久亚洲AV无码网站| 亚洲国产精品va在线播放| 久久国产成人亚洲精品影院 | 亚洲欧洲日本天天堂在线观看| 亚洲精品无码久久久久久久 | 亚洲国产高清美女在线观看| 亚洲福利一区二区三区| 亚洲综合在线成人一区| 亚洲国产日韩在线| 亚洲大香伊人蕉在人依线| 亚洲乱码卡一卡二卡三| 亚洲人成小说网站色| 亚洲性无码AV中文字幕| 亚洲av无码专区在线电影| 亚洲人成网站999久久久综合| 99久久国产亚洲综合精品| 亚洲精品理论电影在线观看| 亚洲AV无码一区二区三区久久精品 | 亚洲精品视频在线观看免费| 亚洲国产成a人v在线| 亚洲一区二区三区免费观看| 男人天堂2018亚洲男人天堂| 亚洲丁香婷婷综合久久| 亚洲AV无码XXX麻豆艾秋| 国产精品亚洲片在线花蝴蝶| 内射无码专区久久亚洲| 国产性爱在线观看亚洲黄色一级片| 亚洲综合精品网站| 亚洲А∨精品天堂在线| 精品国产人成亚洲区| 亚洲VA中文字幕无码毛片| 亚洲视频欧洲视频| 亚洲中文字幕一区精品自拍| 国产精品久久久久久亚洲小说| 亚洲日韩乱码中文字幕| 亚洲国产a级视频| 亚洲gv白嫩小受在线观看|