我发现很奇怪的是,当你在 Rust 中创建静态分配的变量时,它似乎随着堆栈指针的增加而增加。我知道情况并非如此,因为堆栈指针随着内存分配而减少。
如果我在 C 中做同样的事情,我会看到堆栈指针随着我创建更多变量而减少。
为什么会这样呢?Rust 编译器是否从下到上而不是从上到下分配它们?
fn main() {
let i1 = 1;
let i2 = 1;
let i3 = 1;
println!("i1 : {:?}", &i1 as *const i32);
println!("i2 : {:?}", &i2 as *const i32);
println!("i3 : {:?}", &i3 as *const i32);
}
Run Code Online (Sandbox Code Playgroud)
当我运行这个程序时,我收到以下信息:
fn main() {
let i1 = 1;
let i2 = 1;
let i3 = 1;
println!("i1 : {:?}", &i1 as *const i32);
println!("i2 : {:?}", &i2 as *const i32);
println!("i3 : {:?}", &i3 as …Run Code Online (Sandbox Code Playgroud)