私藏很久的C语言开源项目,这次贡献了
发布时间:2022-12-16 11:02:59 所属栏目:Unix 来源:
导读: 1 The Algorithms - C
C语言实现各种算法,同时也可以学习下算法!
项目地址:#the-algorithms---c--mainpage
这一定是你需要的电子书资源,全!值得收藏! - 知乎
2 libhv
C语言实现各种算法,同时也可以学习下算法!
项目地址:#the-algorithms---c--mainpage
这一定是你需要的电子书资源,全!值得收藏! - 知乎
2 libhv
|
1 The Algorithms - C C语言实现各种算法,同时也可以学习下算法! 项目地址:#the-algorithms---c--mainpage 这一定是你需要的电子书资源,全!值得收藏! - 知乎 2 libhv libhv是一个类似于libevent、libev、libuv的跨平台网络库,提供了更简单的接口和更丰富的协议。详细介绍见项目README 精妙小巧跨平台,简单实用易上手 项目地址: 3 C语言入门项目 包括C语言迷宫、24点游戏、奔跑的火柴人、超市管理系统、打字母、电子时钟、对对碰、俄罗斯方块、黑白棋、华容道、火车票订票管理源码、连连看、商品销售系统、象棋、超级玛丽、图书管理系统、学生成绩管理系统....... 大量好玩的C语言程序,训练编程思维,培养解决问题的思路,领略多姿多彩的 C 语言。! 4 tmux tmux是一个终端多路复用器:它允许从单个屏幕创建、访问和控制多个终端。tmux可以从屏幕上分离并在后台继续运行,然后重新连接。 项目地址: 5 C语言PAT练习 PAT习题C语言题解。全部用C语言写,追求代码高效简洁。 项目地址:GitHub - OliverLew/PAT 6 Learn-Algorithms 项目主要是 C语言实现算法相关的学习笔记,包括各类知识点,链表、队列、哈希表等等 项目地址: 7 Sqlite SQLite是一个开源的嵌入式关系数据库,实现自包容、零配置、支持事务的SQL数据库引擎。 项目地址:SQLite Home Page 8 EasyLogger 一款轻量级且高性能的日志库,作者armink,EasyLogger 是一款超轻量级、高性能的 C/C++ 日志库,非常适合对资源敏感的软件项目,相比之下, EasyLogger 的功能更加简单,提供给用户的接口更少,上手会更快,更多实用功能支持以插件形式进行动态扩展。 目前EasyLogger支持以下功能: 项目地址: 9 struct2json struct2json 是一个开源的C结构体与 JSON 快速互转库,它可以快速实现 结构体对象 与 JSON 对象 之间序列化及反序列化要求。快速、简洁的 API 设计,大大降低直接使用 JSON 解析库来实现此类功能的代码复杂度。 起源 把面向对象设计应用到C语言中,是当下很流行的设计思想。由于C语言中没有类,所以一般使用结构体struct充当类,那么结构体变量就是对象。有了对象之后,很多时候需要考虑对象的序列化及反序列化问题。C语言不像很多高级语言拥有反射等机制,使得对象序列化及反序列化被原生的支持。 对于C语言来说,序列化为 JSON 字符串是个不错的选择,所以就得使用 cJSON 这类 JSON 解析库,但是使用后的代码冗余且逻辑性差,所以萌生对cJSON库进行二次封装,实现一个 struct 与 JSON 之间快速互转的库。 struct2json就诞生于此。下面是 struct2json 主要使用场景: 项目地址: 10 TencentOS-tiny encentOS tiny的内核确实是非常非常小巧,最少资源占用为RAM 0.6KB,ROM 1.8 KB。这是他们团队自主研发的RTOS,源码非常简单易懂,源码作者以非常清晰的逻辑实现了整个内核。 TencentOS tiny主要由一个轻量级RTOS内核+多个物联网组件构成,,从下到上主要包括: CPU库 :TencentOS tiny支持的CPU IP核架构,当前主要支持ARM Cortex M0/3/4/7,还有现在很火的RISC-Vunix开源,当然,腾讯物联网团队肯定也会支持更多种类更多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还是非常不错的,该有的功能都有,可以考虑使用一下这个操作系统~ 项目地址: 11 ffmpeg FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。 项目地址:GitHub - FFmpeg/FFmpeg: Mirror of 12 Lua Lua 很棒,Lua 是巴西人发明的,这些都令我不爽,但是还不至于脸红,最多眼红。 让我脸红的是 Lua 的源代码,百分之一百的 ANSI C,一点都不掺杂。在任何支持 ANSI C 编译器的平台上都可以轻松编译通过。我试过,真是一点废话都没有。Lua 的代码数量足够小,5.1.4 仅仅 1.5W 行,去掉空白行和注释估计能到 1W 行。 13 cJSON cJSON 是C语言中的一个 JSON 编解码器,非常轻量级,C文件只有 500 多行,速度也非常理想。 cJSON 也存在几个弱点,虽然功能不是非常强大,但 cJSON 的小身板和速度是最值得赞赏的。其代码被非常好地维护着,结构也简单易懂,可以作为一个非常好的C语言项目进行学习。 14 CMockery cmockery 是 google 发布的用于C单元测试的一个轻量级的框架。它很小巧,对其他开源包没有依赖,对被测试代码侵入性小。cmockery 的源代码行数不到 3K,你阅读一下 will_return 和 mock 的源代码就一目了然了。 (编辑:我爱制作网_池州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐

浙公网安备 33038102330577号