
数据结构与算法
文章平均质量分 77
夏日白云
这个作者很懒,什么都没留下…
展开
-
[开发中遇到的算法] 均分数组
分享一个业务开发中实际用到的算法,以及对应解决思路。原创 2022-07-10 19:09:38 · 765 阅读 · 0 评论 -
使用数据驱动思想简化业务逻辑
数据驱动编程的核心出发点是相对于程序逻辑,人类更擅长于处理数据。数据比程序逻辑更容易驾驭,所以我们应该尽可能的将设计的复杂度从程序代码转移至数据。本文以笔者工作中遇到的实际例子,示例数据驱动编程的思想是怎么简化业务逻辑思考量的。......原创 2022-07-08 11:02:45 · 418 阅读 · 0 评论 -
[嵌入式开发模块]环形缓冲区/循环队列C语言面向对象实现(四)Queue类源码
这篇文章给出了我自己写的纯C语言面向对象开发的队列模块,使用见前一篇原创 2019-03-07 11:42:49 · 519 阅读 · 0 评论 -
[嵌入式开发模块]环形缓冲区/循环队列C语言面向对象实现(三)Queue类介绍及使用示例
这篇文章给出了我自己写的纯C语言面向对象开发的队列模块原创 2019-03-07 10:57:08 · 857 阅读 · 0 评论 -
[嵌入式开发模块]环形缓冲区/循环队列C语言面向对象实现(二)Buffer类源码
这篇文章给出了我自己写的纯C语言面向对象开发的缓冲区模块的源码,使用方法见前一篇。原创 2019-03-06 18:24:37 · 1522 阅读 · 0 评论 -
[嵌入式开发模块]环形缓冲区/循环队列C语言面向对象实现(一)Buffer类介绍及使用示例
这篇文章给出了我自己写的纯C语言面向对象开发的缓冲区模块原创 2019-03-06 16:56:47 · 3898 阅读 · 2 评论 -
实现C语言的异常处理机制 Implementing Exceptions in C
网上冲浪时发现一个很有意思的文献——《Implementing Exceptions in C》,虽然十分古老(1989),但对C语言这种几乎不变的语言来说不存在知识过时的问题。文中讲了怎么在纯C语言中实现类似C++异常处理机制的方法,并提供了库源码,让人眼前一亮,于是翻译一番,作为自己的库的一部分。翻译 2018-10-02 21:31:08 · 2746 阅读 · 0 评论 -
[嵌入式开发模块]基于uCOS-II的任务池/线程池 模块
线程池避免了创建和销毁线程带来的大量开销,使得软件效率得到了极大的提升。uCOS中没有线程这个概念,而是使用了基于优先级的任务,同一时间只会运行所有准备好的任务中优先级最高的那个。我基于uCOS的任务写了这个任务池模块,对线程池的功能进行简单地模拟。原创 2018-08-17 15:41:49 · 1202 阅读 · 0 评论 -
[嵌入式开发模块]环形缓冲区/循环队列 C语言实现
忙着毕设,很久没有写文章了,终于答辩完了,得了个校优秀毕业设计。毕设做的是个智能接口模块,用一周时间入门了,MC9S12XEP100的开发,又用一周时间入门了uC/OS-II嵌入式操作系统,在做毕设的过程中学到了很多,现在把一些工具发上来分享。这里分享一个自己用纯C实现的环形缓冲区。环形缓冲区有很多作用,比如嵌入式中的通信可以用环形缓冲区作为信道,一个线程往里放字节,一个线程取字节进行处理...原创 2017-06-22 15:14:26 · 16103 阅读 · 6 评论 -
[嵌入式开发模块]机械按钮模块 纯C语言 面向对象实现 按键消抖、长按、连击
为了方便大家实现机械按钮常用的各种功能(消抖、长按、连击),我对其进行了封装。目前实现要求用户每隔一段时间轮询一下所有按钮的状态,并分别调用一次每个按钮对象的TimeTick方法将其当前状态传入,然后TimeTick方法就会把这个按钮发生了什么事件(按下、抬起、长按、单/连击)返回给你,然后就可以很方便的按照自己的需要进行处理了。具体的实现细节完全被隐藏。原创 2017-12-25 21:32:53 · 3581 阅读 · 2 评论 -
[嵌入式开发模块]系统时间SYSTEMTIME 轻量实现
美丽的暑假被叫回来干活。要我改个3年前的嵌入式程序,马上项目要用。一看程序,亲娘滴,全部业务代码全部写在main.c文件中,大段大段的复制黏贴微改,任务间通信全用的轮询标志位╮(╯▽╰)╭。有强迫症的我用一周把整个程序重构了一遍,各模块分到不同的文件中,各种封装,同步的方式全改成异步。最后一算,扣掉操作系统的代码,代码量(CODE+DATA)减少了一半,这还是实现了许多原来没实现的功能后的,比原来...原创 2017-08-02 23:30:01 · 1036 阅读 · 0 评论 -
MC9S12XE的模拟EEPROM综述
此为本人对官方文档AN3490的翻译。这篇文档详述了怎么使用存储控制器命令来配置和使用S12(X)微控制器上提供的模拟EEPROM。其中还综述了模拟EEPROM的实现以及应用程序应该考虑的一些事情。翻译 2017-11-01 00:30:15 · 4887 阅读 · 2 评论 -
《The Practice of Programming》读书笔记(一)
最近在看《程序设计实践》,据说这书是一个被名字毁了的好书。看了之后表示认同。其中的很多最佳实践我之前已经在使用,但其中给了很好的归纳。另外还有一些以前没有想到的,让我感觉眼前一亮的。掌握这些最佳实践能够大大提高编程效率、可读性,大大减少bug的概率。其中的实践都是从工作中总结出来的。这是我对这本书的读书笔记。原创 2017-11-14 14:46:53 · 1451 阅读 · 0 评论 -
【小工具】日期与一年中第几天的转换程序
一年中的第几天与具体是几月几号互换的小程序,取自《C程序设计语言》。需要的自取。原创 2017-07-11 12:28:59 · 1040 阅读 · 0 评论