为什么建议少用if语句,不是运行效率 为什么建议少用if语句,不是影响运行效率!絮絮叨叨:放假使我的作息混乱… 相信大家或多或少的听说过,少用点if-else吧?但是为什么要少用呢,有人说他会影响程序运行效率,但是这并不是他最大的罪状! if-else 的罪状if-else 作为三种最基本的程序结构之一,是我们从最开始学习编程时就接触的基本语句。但是到后面的阶段就不断听人说少用if-else。 如果询问原因的话,你得到的结果大概率时 2022-09-04
二值信号量和互斥锁有何异同 二值信号量和互斥锁有何异同(优先级反转的处理)絮絮叨叨:之前一直以为互斥锁就是用二值信号量来实现的,但是发现两个还是有本质区别。 信号量和互斥锁信号量:信号量本质是一种同步机制,用于线程间同步(时间先后顺序)。 信号量典型用例是一个生产者消费者模型,生产者线程进行V操作(释放信号量,信号量++),消费者线程进行P操作(持有信号量,信号量–),信号量为0时,消费无法持有信号量,进入挂起等待状态。 互 2022-09-04
为什么建议少用if语句,不是运行效率 从汇编角度比较 if 和switch 性能差异絮絮叨叨 : 这个五一就好好的当个技术宅吧,把之前欠的作业给补上,后面争取稳定周更一篇 if 和 switch 性能差异在写代码的时候肯定会用到不少if和switch语句,除了我们都知道的用法上的差异,性能上有什么差异。 这篇文章尝试从汇编的角度去解决下面的几个问题。 影响if和switch性能的差异点在哪,他们有何异同。 if和switch的差异临 2022-09-04
依赖注入和工厂模式有什么关系 依赖注入和工厂模式有什么关系?(C语言示例)絮絮叨叨:今天师傅让我给他讲讲什么是工厂模式,工厂模式又要怎么用。 虽然说知道什么是工厂模式,但是在还没在实际的代码中用过。于是乎又深入的学习了下,发现工厂模式其实我们都见过,只是并没意识到而已。 什么是工厂模式 这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。在工厂模式中,我们在创建对象时不会对客户端暴露创建逻辑,并且是通过使用一个 2022-09-04
变长数组和柔性数组 变长数组和柔性数组絮絮叨叨: 让人不开心的事,不去做就好 数组的变种我们常规使用的数组大部分都是C89标准的功能,在C99标准中添加了对变长数组和零长度数组的支持。 这两种新的特性有时会给开发带来不错的效果。 变长数组变长数组(variable-length array)并不是长度可以变化的数组。 在最开始学习C语言时,基本都强调过数组的长度是不可变的,同样这句话依然适用。 这里指的变长,是在定义 2022-09-04
喜大奔普,wsl原生支持GUI了 前两天偶然发现,WSL2 竟然原生支持 GUI 了,这个可能是 Win11 给我带来的唯一惊喜吧~ 使用方式用一个来形容使用体验就是爽! 现在可以完全抛弃双系统,什么 X11 的也统统消失吧~ 首先看下基本使用方式: 在 WSL2 的命令行输入命令后,会直接出现一个窗口显示对应的 GUI 在 Windows11 的开始菜单中点击图标启动(可以直接在搜索栏中搜索程序) 当你在 WSL2 2022-09-04
安全函数不安全--多线程慎用list.h 安全函数不安全–多线程慎用list.h絮絮叨叨: 一个 BUG 轻轻松松让我少了几个小时的睡眠时间! 前言linux 开发应该多少都听过大名鼎鼎的 list.h ,其简洁优雅的设计,一个头文件完成了一个高可用的链表。 但是 list.h 并不是线程安全的,在多线程的情况下使用,必须考虑多线程数据同步的问题。 然而。。。。 我在使用互斥锁对链表的操作进行保护之后,还是被坑了! 下面是把我坑了的 li 2022-09-04
小米温湿度计拆解 絮絮叨叨:心情不好,码字转移注意力… 小米温湿度计拆解前段时间去朋友家,看到它桌子上的时钟,被吸引了注意力,极其简洁的外观和清晰的显示。 这就是米家电子温湿度计 Pro 。 看到这个符号的显示我惊了,电子墨水屏有这么好的清晰度吗,于是乎也买了一个。想着用来改装做一个自己的显示屏。 拆开外壳,一个非常简单的 PCB 板,正面一共 20 个阻容元件、4 个二极管、3 个晶振、4颗芯片以及三粒电池, 2022-09-04
运行在MCU上的Linux-Nuttx 简介 之前在论坛看到过一篇帖子,说怎么在 STM32 上移植 Linux ,帖子写了很长,最后才发现使用的 uclinux,而且还是只启动一个 uboot。 现在想想为什么需要在 STM32 这种 MCU 上移植 Linux 呢,个人猜测可能是因为 Linux 环境丰富的组件和软件可移植性吧。 可是如果有一个 mini 版的 Linux 系统可以用呢,而且还不需要移植上手即用,这个就是 Nuttx。 2022-09-04