从 CPU 寄存器和栈帧角度剖析 Rust 的整型、浮点型、布尔型、字符型以及元组与数组的内存对齐与存储方式。

1. 标量类型 (Scalar Types)

Rust 包含四种核心标量类型:

  1. 整数型:有符号 (i8 ~ i128, isize) 与无符号 (u8 ~ u128, usize)。
  2. 浮点型:f32 (单精度) 与 f64 (双精度,默认推荐)。
  3. 布尔型:bool 占用 1 个字节。
  4. 字符型:char 占用 4 个字节,代表一个 Unicode 标量值(支持 Emoji 与汉字)。

2. 复合类型 (Compound Types)

元组 (Tuple)

元组长度固定,可容纳多种不同类型的值:

let tup: (i32, f64, u8) = (500, 6.4, 1);
let (x, y, z) = tup; // 解构
println!("y 的值为: {}", tup.1);

数组 (Array)

数组分配在栈(Stack)上,长度在编译期确定且必须包含同类型元素:

let a: [i32; 5] = [1, 2, 3, 4, 5];
let b = [3; 5]; // 等价于 [3, 3, 3, 3, 3]