小强的博客

使用 VSCode 打造多平台多语言通用的 IDE

概述 虽然我是 vim/nvim 爱好者,但在用过 vscode 之后也不得不承认 vscode 也非常好用,甚至在某些方面比 vim 还好用,相比 vim/nvim,它有以下优势: 学习成本低:vscode 基本不需要通过专门阅读其官方文档来学习,它是直观的、容易理解的、形象的。 具备一定的定制能力:vscode 本身只是一个文本编辑器,类似记事本,也类似 vim/nvim。...

使用 nvim 打造多平台多语言通用的 IDE

起因 很早以前就有相关教程,将 vim 打造成 IDE,但通常仅限于 Linux/MacOS,Windows 对于 Linux 相关的工具一直以来都不太友好,包括 vim。所以即使按照教程配置好了也无法在 Windows 上正常使用。之前我采用 Linux 虚拟机的方式,通过 ssh 连接到虚拟机,然后使用 vim 进行开发,但这样依然比较麻烦,比如文件同步问题等。 我尝试完全转到 Li...

STM32 使用笔记

STM32 作为单片机开发的代表之一,其众多理论和方法值得学习,本文是其学习/使用笔记。本文以 STM32F103C8T6 为例,大量参考了其官方手册,其它型号的芯片也有类似的手册。 官方手册 阅读官方手册是个好习惯,如果对官方手册比较熟悉,理解比较透彻,则通常会较少遇到问题,遇到问题也有大概的定位思路,尤其是所谓的“玄学”问题,常常能在其中找到答案,避免浪费大量时间在网上检索。 ST...

C语言队列实现

本文探讨在 C 语言中如何实现一个队列。 用 C 语言实现队列(或其他数据结构)有以下几个要点: 如何实现泛型?即所有类型适用,即使是自定义结构体。C++ 使用模板可轻松实现。C 语言中实现泛型主要有两种方式:void * 和宏定义。 如何高效地进行内存管理?由谁负责队列本身和数据的内存管理?调用者还是队列模块本身? 基于数组还是链表?一般基于数组比较简单 时空性能?时...