作者归档:yanjingang

成长之路—计算机调度算法与生活

有时看到别人或自己在安排和处理事情上陷入混乱时,我脑海里都忍不住想到系统调度算法,一直想写一下调度算法对我们日常处理事情的启发,今天终于动笔,本文就结合操作系统调度算法,以日常生活做事安排为例,看看是否有值的借鉴的地方。 阅读全文

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文件呢?本文就给大家简单讲一下。 阅读全文