gpt4 book ai didi

rust - 为什么 Rust 中的堆栈值相差如此之远?

转载 作者:行者123 更新时间:2023-12-03 11:27:14 26 4
gpt4 key购买 nike

当我运行时

fn main() {
let x: i32 = 0;
println!("{:p}", &x);
let y: i32 = 1;
println!("{:p}", &y);
}

Rust playground ,打印的值在十进制中相隔 88。我的期望是它们相隔 4 或 8(字节)。为什么这么大?

最佳答案

println! 宏也将使用堆栈变量。如果你交换语句的顺序(至少在 Rust Playground 调试中),两个指针相隔 4 个字节:

fn main() {
let x: i32 = 0;
let y: i32 = 1;
println!("{:p}", &x); // 0x7ffe0b865db0
println!("{:p}", &y); // 0x7ffe0b865db4
}

无法保证堆栈的使用方式,并且很可能与优化的二进制文件不同。

关于rust - 为什么 Rust 中的堆栈值相差如此之远?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65903470/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com