大家好,今天来为大家分享c源码分享下载国外网站的一些知识点,和源码免费下载网站的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看吧!
1TheAlgorithms-C
C语言实现各种算法,同时也可以学习下算法!
项目地址:https://github.com/TheAlgorithms/C#the-algorithms—c–mainpage
这一定是你需要的电子书资源,全!值得收藏!-知乎
2libhv
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++编写HTTPAPI服务端/客户端最简单的库,没有之一
项目地址:https://github.com/ithewei/libhv.git
3C语言入门项目
包括C语言迷宫、24点游戏、奔跑的火柴人、超市管理系统、打字母、电子时钟、对对碰、俄罗斯方块、黑白棋、华容道、火车票订票管理源码、连连看、商品销售系统、象棋、超级玛丽、图书管理系统、学生成绩管理系统…….
大量好玩的C语言程序,训练编程思维,培养解决问题的思路,领略多姿多彩的C语言。!
4tmux
tmux是一个终端多路复用器:它允许从单个屏幕创建、访问和控制多个终端。tmux可以从屏幕上分离并在后台继续运行,然后重新连接。
项目地址:https://github.com/tmux/tmux
5C语言PAT练习
PAT习题C语言题解。全部用C语言写,追求代码高效简洁。
项目地址:GitHub-OliverLew/PAT
6Learn-Algorithms
项目主要是C语言实现算法相关的学习笔记,包括各类知识点,链表、队列、哈希表等等
项目地址:https://github.com/nonstriater/Learn-Algorithms
7Sqlite
SQLite是一个开源的嵌入式关系数据库,实现自包容、零配置、支持事务的SQL数据库引擎。
不需要一个单独的服务器进程或操作的系统(无服务器的)。SQLite不需要配置,这意味着不需要安装或管理。一个完整的SQLite数据库是存储在一个单一的跨平台的磁盘文件。SQLite是非常小的,是轻量级的,完全配置时小于400KiB,省略可选功能配置时小于250KiB。SQLite是自给自足的,这意味着不需要任何外部的依赖。SQLite事务是完全兼容ACID的,允许从多个进程或线程安全访问。SQLite支持SQL92(SQL2)标准的大多数查询语言的功能。SQLite使用ANSI-C编写的,并提供了简单和易于使用的API。SQLite可在UNIX(Linux,MacOS-X,Android,iOS)和Windows(Win32,WinCE,WinRT)中运行。
项目地址:SQLiteHomePage
8EasyLogger
一款轻量级且高性能的日志库,作者armink,EasyLogger是一款超轻量级、高性能的C/C++日志库,非常适合对资源敏感的软件项目,相比之下,EasyLogger的功能更加简单,提供给用户的接口更少,上手会更快,更多实用功能支持以插件形式进行动态扩展。
目前EasyLogger支持以下功能:
日志输出方式支持串口、Flash、文件等;日志内容可包含级别、时间戳、线程信息、进程信息等;支持多种操作系统,支持裸机;各级别日志支持不同颜色显示;
项目地址:https://gitee.com/Armink/EasyLogger
9struct2json
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
10TencentOS-tiny
encentOStiny的内核确实是非常非常小巧,最少资源占用为RAM0.6KB,ROM1.8KB。这是他们团队自主研发的RTOS,源码非常简单易懂,源码作者以非常清晰的逻辑实现了整个内核。
TencentOStiny主要由一个轻量级RTOS内核+多个物联网组件构成,,从下到上主要包括:
CPU库:TencentOStiny支持的CPUIP核架构,当前主要支持ARMCortexM0/3/4/7,还有现在很火的RISC-V,当然,腾讯物联网团队肯定也会支持更多种类更多IP核与开发板。
驱动管理层:包括BSP板级支持包,这些东西主要由MCU芯片厂家开发与维护,、HAL硬件抽象、Drivers设备驱动,这部分对于纯粹嵌入式开发者来说还是很重要的,肯定会越来越完善的!
内核:TencentOStiny实时内核包括任务管理、实时调度、时间管理、中断管理、内存管理、异常处理、软件定时器、链表、消息队列、信号量、互斥锁、事件标志等模块,接下来我也将写一系列TencentOStiny内核源码分析的文章,敬请期待吧!
IoT协议栈:TencentOStiny提供lwip、ATAdapter、SAL层,支持不同的网络硬件,如以太网、串口WIFI、GPRS、NB-IoT、4G等通信模块。在TCP/IP网络协议栈上提供常用的物联网协议栈应用层,如COAP、MQTT,支撑终端业务快速接入腾讯云;
安全框架:TencentOStiny为了确保物联网终端数据传输安全以及设备认证安全,提供了比较完整的安全解决方案。安全框架提供的DTLS和TLS安全协议加固了COAP及MQTT的传输层,可确保物联网终端在对接腾讯云时实现安全认证和数据加密;另外针对低资源的终端硬件,安全框架还提供与腾讯云IoTHub配套的密钥认证方案,确保资源受限设备也能在一定程度上实现设备安全认证;物联网安全是非常重要的,这些框架也是必须存在的。
组件框架:TencentOStiny提供文件系统、KV存储、自组网、JS引擎、低功耗框架、设备框架、OTA、调试工具链等一系列组件,这部分我觉得还是很不错的,期待ing;
开放API(规划开发中):TencentOStiny将在协议中间件和框架层上提供开放API函数,这样子就能很方便使用中间组件的功能,我是最喜欢这种开发的,不造轮子,能直接使用。简单来说这个API能快速对接腾讯云,实现终端业务上云的需求,最大程度减少终端物联网产品开发周期,节省开发成本;
示例应用:TencentOStiny提供的示例代码,模块测试代码等,方便用户参考使用。
腾讯云物联网平台(图中最上层的部分):严格来说这部分不算TencentOStiny的框架内容,这是接入平台层了,腾讯云的物联网平台都是提供多种语言的SDK包,当然在嵌入式设备上肯定使用CSDK的,不过总的来说都是很不错的。
总的来说TencentOStiny还是非常不错的,该有的功能都有,可以考虑使用一下这个操作系统~
项目地址:https://github.com/Tencent/TencentOS-tiny
11ffmpeg
FFmpeg是一套可以用来记录、转换数字音频、视频,并能将其转化为流的开源计算机程序。采用LGPL或GPL许可证。它提供了录制、转换以及流化音视频的完整解决方案。
项目地址:GitHub-FFmpeg/FFmpeg:Mirrorofhttps://git.ffmpeg.org/ffmpeg.git
12Lua
Lua很棒,Lua是巴西人发明的,这些都令我不爽,但是还不至于脸红,最多眼红。
让我脸红的是Lua的源代码,百分之一百的ANSIC,一点都不掺杂。在任何支持ANSIC编译器的平台上都可以轻松编译通过。我试过,真是一点废话都没有。Lua的代码数量足够小,5.1.4仅仅1.5W行,去掉空白行和注释估计能到1W行。
项目地址:http://www.lua.org/
13cJSON
cJSON是C语言中的一个JSON编解码器,非常轻量级,C文件只有500多行,速度也非常理想。
cJSON也存在几个弱点,虽然功能不是非常强大,但cJSON的小身板和速度是最值得赞赏的。其代码被非常好地维护着,结构也简单易懂,可以作为一个非常好的C语言项目进行学习。
项目地址:http://sourceforge.net/projects/cjson/
14CMockery
cmockery是google发布的用于C单元测试的一个轻量级的框架。它很小巧,对其他开源包没有依赖,对被测试代码侵入性小。cmockery的源代码行数不到3K,你阅读一下will_return和mock的源代码就一目了然了。
主要特点:
免费且开源,google提供技术支持;轻量级的框架,使测试更加快速简单;避免使用复杂的编译器特性,对老版本的编译器来讲,兼容性好;并不强制要求待测代码必须依赖C99标准,这一特性对许多嵌入式系统的开发很有用
项目地址:http://code.google.com/p/cmockery/downloads/list
推荐一个资源仓库:https://github.com/tangtangcoding/C-C-
这一定是你需要的电子书资源,全!值得收藏!-知乎
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!
