道哥的第 024 篇原创 先说声抱歉,斗胆了 第一次写这种非技术性的文章,感觉有点心虚啊,而且题目又似乎有点居高临下的感觉。 《增广贤文》中有这么一句话:力微休重负,言轻莫劝人。 我也不是成功人士,有自知之明,明白自己有几斤几两,所以万万不敢以一个很高的姿态,来对年轻人提什么建议。在这里只能用自己踩 Read More
道哥的第 023 篇原创 一、前言 我们在撸代码的时候,经常需要对代码的安全性进行检查,例如: 指针是否为空? 被除数是否为 0? 函数调用的返回结果是否有效? 打开一个文件是否成功? 对这一类的边界条件进行检查的手段,一般都是使用 if 或者 assert 断言,无论使用哪一个,都可以达到检查的目 Read More
道哥的第 022 篇原创 一、前言 在上一篇文章中物联网网关开发:基于MQTT消息总线的设计过程(上),我们聊了在一个物联网系统的网关中,如何利用 MQTT 消息总线,在嵌入式系统内部实现多个进程之间的相互通信问题。 这个通信模型的最大几个优点是: 模块之间解耦合; 各模块之间可以并行开发; 把 T Read More
道哥的第 021 篇原创 一、前言 在上一篇中,我们聊了在一个嵌入式系统中,如何利用MQTT消息总线在各进程之间进行通信,文章链接:《我最喜欢的进程之间通信方式-消息总线 》。 这样的通信模型,我之前已经在多个项目中应用过,对于非工控产品来说,通信速度完全足够。我以前做过测试,在x86平台和ARM平 Read More
道哥的第 020 篇原创 一、Linux 系统中的进程之间通信(IPC) 作为一名嵌入式软件开发人员来说,处理进程之间的通信是很常见的事情。从通信目的的角度来看,我们可以把进程之间的通信分成 3 种: 为了进程的调度: 可以通过信号来实现; 为了共享资源:可以通过互斥锁、信号量、读写锁、文件锁等来实 Read More
道哥的第 019 篇原创 一、前言 一直以来,我都有这样一种感觉:当我学习一个新领域的知识时,如果其中的某个知识点在刚开始接触时,我感觉比较难懂、不好理解,那么以后不论我花多长时间去研究这个知识点,心里会一直认为该知识点比较难,也就是说第一印象特别的重要。 就比如 C 语言中的宏定义,好像跟我犯冲一 Read More
这是道哥的第018篇原创 一、你是怎么阅读 PDF 文件的? 作为已经软件开发人员,阅读代码或者 PDF文件是家常便饭的事情。假设有这样一个场景:你在看第 100 页的内容时,想回过头去看一下第 20 页的图片,你一般是如何操作? 这篇文章为你推荐一个利器:Snipaste,如果你已经在使用这个非常 Read More
这是道哥的第 017 篇原创 关注+星标公众号,不错过最新文章 一、前言 在 C 标准库中,有两个威力很猛的函数:setjmp 和 longjmp,不知道各位小伙伴在代码中是否使用过?我问了身体的几位同事,一部分人不认识这两个函数,有一部分人知道这个函数,但从来没有使用过。 从知识点范围来看,这两个 Read More
这是道哥的第016篇原创 关注+星标公众号,不错过最新文章 一、前言 半个月前写的那篇关于指针最底层原理的文章,得到了很多朋友的认可(链接: C语言指针-从底层原理到花式技巧,用图文和代码帮你讲解透彻),特别是对刚学习C语言的小伙伴来说,很容易就从根本上理解指针到底是什么、怎么用,这也让我坚信一句话 Read More
这是道哥的第015篇原创 关注+星标公众号,不错过最新文章 一、前言 1. 为什么写这篇文章 在上周六,我在公众号里发了一篇文章:C语言指针-从底层原理到花式技巧,用图文和代码帮你讲解透彻,以直白的语言、一目了然的图片来解释指针的底层逻辑,有一位小伙伴对文中的代码进行测试,发现一个比较奇怪的问题。我 Read More