寄存器(Register)

寄存器是 CPU 内部的“超高速小盒子”,用来临时存放数据、地址或运算结果。
特点:CPU里、速度快、容量小。
常见寄存器例子(x86 里):
1.AX、BX、CX、DX:通用寄存器
2.IP/EIP/RIP:指令指针
3.SP/ESP/RSP:栈指针
大端/小端讲的是内存里字节的存放顺序
寄存器本身没有“端序”,端序只在把寄存器的值写入内存或从内存读出来时体现。
Windows(x86/x64)是小端:低位字节放在低地址

什么是 x86

x86 是一种 CPU 指令集架构(ISA),最早由 Intel 的 8086 处理器开始,后来发展成现在 PC 上主流的 32 位、64 位架构。
“x86”不是“×86”它的来源是 Intel 80x86 系列 CPU 的命名:8086、80186、80286、80386、80486 ……所以叫 x86(x 代表那一位数字在变),不是乘法符号。

Visual Studio Code C语言运行报错:缺少 ; / }

cl.exe 默认把源文件当作当前系统代码页(CP936)来读。我文件源码是 UTF‑8,里面有中文注释/字符串,cl.exe用 CP936 去解码就会把字节读乱,进而出现“缺少 ; / }”这类假语法错误。
BOM(Byte Order Mark) 是文件开头的一段标记(UTF‑8 的 BOM 是 3 个字节)。
cl.exe 看到 BOM 后,就能识别“这是 UTF‑8”,正确解码。
右下角选择UTF-8 with BOM即可

闰年定义(公历)

  1. 能被 400 整除的是闰年
  2. 能被 4 整除但不能被 100 整除的是闰年
  3. 其他都不是
    比如:
  • 2000 年是闰年(400 的倍数)
  • 2100 年不是闰年(100 的倍数但不是 400 的倍数)

对应到C代码条件就是:
(year % 400 == 0) || (year % 4 == 0 && year % 100 != 0)