从 CPU 寄存器和栈帧角度剖析 Rust 的整型、浮点型、布尔型、字符型以及元组与数组的内存对齐与存储方式。
1. 标量类型 (Scalar Types)
Rust 包含四种核心标量类型:
- 整数型:有符号 (
i8~i128,isize) 与无符号 (u8~u128,usize)。 - 浮点型:
f32(单精度) 与f64(双精度,默认推荐)。 - 布尔型:
bool占用 1 个字节。 - 字符型:
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]