C++使用union+struct实现bit协议的赋值与解析

在进行嵌入式开发的过程中,经常会遇到通信协议是按bit位定义的情况,比如协议一共6个byte字节,每个byte一共8bit位,但是传输的很多数据用1、2个bit就足够了,这时协议会按bit定义,如何方便快捷的进行bit位的赋值和读取,即为本文讲解的内容。 阅读全文

C++ enum枚举的输出重载

我们在编写程序时经常会用到enum枚举类型,使用非常方便。但是当枚举定义较多时,在LOG打印时输出值很难直观的明白其含义,必须对照enum定义。本文介绍一个比较简单的方法,让LOG打印或std::cout输出枚举值时,直接输出文本。 阅读全文

创建自定义Ubuntu Docker镜像

之前体验过Ubuntu22.04版本后感觉新增的小工具很好用,就把几台linux设备都升级到了Ubuntu22,最近开发一个新功能,其中必须的编译依赖工具bcloud要求最高Ubuntu20下才能用,然后就悲催了,实在不想重装系统了,打算做一个ubuntu20+bcloud及依赖库的docker镜像,本文就记录下过程。 阅读全文

C++编译优化之—so动态库依赖

我们在编写C++程序时经常用到.so库,有外部的也有自己编写的,那么在程序编译后,如何查看可执行程序或动态库的依赖关系呢?有些项目启动时加载大量的.so库导致启动速度慢,如何便捷的清理已不使用的so文件呢?本文就给大家简单讲一下。 阅读全文

成长之路—《曾国藩》读后感

五一假期陪娃到外地参赛,比赛期间闲来无事,拜读了唐浩明版的《曾国藩》。以前喜欢读资治通鉴、史记,学到不少知识,但这本《曾国藩》并不是正史,而是一本小说,里边结合了曾家流传下来的曾国藩家书、手记等,增加了一些虚构的成分,但总体来说写的不错,把那个年代中一代重臣跌宕起伏的官场生涯描绘的栩栩如生。 阅读全文

成长之路—《影响力》的武器

​文明的进步,就是人们在不假思索中可以做的事情越来越多。——阿尔弗雷德·诺思·怀特黑德

人类在长期的进化过程中,为了不断提高效率,逐渐形成了不少条件反射的思维/行为模式,它能帮我们节省思考的时间和精力。通过经验习得的心理原则和范式,使我们根据少数关键特征对自动反应分类,一碰到这样那样的触发特征,就不假思索的做出反应。 阅读全文