英语语法综述

8 minute read

我们为什么学语法? 当然是为了考高分啊😂 其实,所有的英语语法都只有一个目的:造句。 英语和中文一样,我们说话写文章有的时候用短句子,有的时候用长句子。不同的短句子又可以组合成新的长句。但这里说的是句子的长度,并不适合语法讨论。 我们只有把句子拆开来,直到拆到不能再继续拆了,否则句意会不完整的 “基本句”...

GNU 汇编(GAS)通用语法与伪指令指南

12 minute read

由于机器指令及助记符高度依赖于芯片的具体架构,本文不讨论特定指令集的全部细节,而是聚焦于 GAS(GNU Assembler)通用的伪指令系统及其基本语法规则。 1. 汇编器的本质与工作流 GNU Assembler(简称 as)的核心工作流可以用以下公式概括: $$ \text{源代码 (.s)} \xr...

ARMv7-A 指令体系全解:数据处理、访存、分支与同步

13 minute read

I.MX6ULL 的核心是 ARM Cortex-A7,它基于 ARMv7-A 架构。 要真正理解指令集,就不能只是背诵汇编手册,而是要回答一个核心问题:如果不看代码,只看电路,CPU 在做什么? 本质上,每一条指令都是对 CPU 内部寄存器状态或外部总线(内存/外设)的一次原子操作。 总线(Bus)...

C++ 中的 stack

10 minute read

要真正理解栈这种结构,意味着我们要剥离事物表象,追究其最本质的问题,即我们到底面临什么样的数据处理需求,才导致了 “栈” 这种结构的诞生? 我们不需要把栈仅仅看作是教科书上的定义,而是把它看作是为了解决特定时序问题而设计的一种 “受限” 模型。 1. 什么是栈? 从本质上来说,计算机处理任务通常有两种模式:...

操作系统中的进程

3 minute read

在计算机科学的教科书中,关于进程(Process)的定义往往只有冷冰冰的一句话: 进程是程序的一次执行过程。 这句话虽然准确,但它掩盖了太多细节。对于初学者而言,这更像是一个黑盒。为什么要有进程?为什么不能直接操作物理地址?所谓的上下文切换到底切换了什么? 要真正理解进程,我们不能只看定义,而必须回...

C++ 中的初始化列表和列表初始化

6 minute read

深入理解 C++ 中初始化列表与列表初始化的区别:前者解决对象生命周期与内存模型问题,后者统一初始化语法并提供类型安全保障。

C++ 中的 list

2 minute read

在现代 C++ 开发中,虽然 std::vector 足以应付绝大多数的场景,但是在某些特定场景下,std::list 依旧是不可替代的神器。 核心概念与底层原理 头文件:#include <list> 本质:双向链表(Doubly Linked List) 内存模型:非连续内存。每...

C++ 中的构造函数

4 minute read

深入理解 C++ 构造函数的本质:从资源管理到性能优化。涵盖默认构造、拷贝构造、移动构造,以及 RAII、explicit、constexpr 等关键机制。

C++ 中的 vector

3 minute read

std::vector 是 C++ 中最重要、最常用的容器,没有之一。它的本质是动态数组(Dynamic Array)。 std::vector 是在堆(Heap)上管理一块连续的内存,可以存放任意类型的对象。 核心特性与底层原理 头文件:#include <vector> 内存模型:...

C++ 中的 string

4 minute read

std::string 是 C++ Standard Library 提供的标准类之一,这也是 C++ 开发中最常用的类之一,它本质上是对 C 风格字符串(char*)的封装,提供了自动内存管理和丰富的操作接口。 核心概念 std::string 位于 <string> 头文件中,本质上是对 st...

英语翻译技巧

3 minute read

在备考 CET-6 或雅思写作时,许多同学面临的最大障碍不是词汇量,而是思维模式(Mindset)。中英文在底层逻辑上存在巨大的鸿沟:中文重意合、动态、叙事;英文重形合、静态、结构。 本文将拆解中英翻译的核心差异,并提供一套可操作的翻译三步法。 一、 核心思维差异(Core Divergences) 1. ...

深入理解逻辑与英语中的 “让步” (Concession)

1 minute read

什么是 “让步” 的逻辑内核? 在正常的线性逻辑中,我们通常认为: 原因 A $\rightarrow$ 导致结果 B 例如:因为下雨了(A),所以我没出门(B)。$\leftarrow$ 顺理成章。 但是,世界是复杂的。有时候,原因 A 发生了,它预期的结果 B 缺没有发生,反而发生了相反的结...

Notes of Effective CMake

29 minute read

1. The Philosophy of Modern CMake Why “Effective CMake”? Just like with C++, the way you write CMake code significantly impacts your project’s maintainabil...

Visual Studio C++ 工程实践指南

2 minute read

解决方案(Solution)与项目(Project) 一个解决方案是用于组织和管理一个或多个相关联项目的容器。这套结构旨在将一个复杂的实际问题,分解成多个功能独立的模块(项目)来开发和管理。 解决方案(.sln 文件):这是最高层级的组织单位,它定义了所包含的项目以及它们之间的依赖关系和构建配置。当你打...

学习 fgets 函数和 strcspn 函数

3 minute read

本文记录了在 C 语言刷题过程中遇到的字符串输入问题。详细介绍了 fgets 函数和 strcspn 函数的用法,用于解决 scanf 无法读取带空格字符串以及换行符处理的问题,并补充了 scanf(“%[^\n]”) 这一更简洁的替代方案。