[英]Why are stack values so far apart in Rust?
當我跑
fn main() {
let x: i32 = 0;
println!("{:p}", &x);
let y: i32 = 1;
println!("{:p}", &y);
}
在Rust 操場中,打印的值以十進制表示,相隔 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
}
無法保證堆棧的使用方式,並且很可能與優化的二進制文件不同。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.