C
文章平均质量分 53
zhaodong_jack
这个作者很懒,什么都没留下…
展开
-
定时事件链表
会根据需要延时的时间和延时的选项在链表中找到一个合适的位置,将链表节点插入到该位置。当减到0的时候,执行回调函数,并把链表的首节点释放,下一个节点就是节点了,以此类推。因为我是在win32环境编写和下测试的,所以就是在主循环中比较当前时间和上次时间的差,以此方法对头节点的时间做减法操作如果在嵌入式中可以在中断服务函数中对链表头部的时间做减法。本文主要写的是:将需要定时的事件作为一个链表节点添加到链表中。要声明的一点是:结构中time字段延时的时间是相对于上一个节点执行过后还需要延时的时间。原创 2022-12-11 15:36:41 · 475 阅读 · 0 评论 -
C语言结构体之顺序初始化和乱序初始化
之前在学习Linux驱动开发时看一些内核驱动的时候,发现他们都是在定义结构体的时候初始化结构体,如下所示:我以前从来没这样写过,于是我打开vim写了一个非常简单的测试程序,编译,运行都OK。我就认为我只是不知道结构体初始化还能这么写罢了。然后我写驱动程序也经常这样写。直到今天我在写一款单片机程序时,这样初始化,编译居然报错了?我就纳闷了,这和编译器有关系?上网百度发现这是C99加入的新特性。经过查阅资料发现:我在linux下使用的gcc是支持C99的。而我这次使用的单片机是小日本一个厂家的,他原创 2022-02-12 11:43:19 · 3342 阅读 · 0 评论