文章目录
数值溢出
编译通过,运行失败
cargo run 1
fn main() {
let mut arg = std::env::args()
.skip(1)
.map(|x| x.parse::<i32>().unwrap())
.next()
.unwrap();
let m_i = i32::MAX - 1;
let a = m_i + arg;
println!("{:?}", a);
}
thread 'main' panicked at 'attempt to add with overflow', src\bin\rssh3.rs:13:13
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
error: process didn't exit successfully: `target\debug\rssh3.exe 1` (exit code: 101)
编译不通过
fn main() {
let m_i = i32::MAX;
let a = m_i + 1;
println!("{:?}", a);
}
输出
error: this arithmetic operation will overflow
--> src\bin\rssh3.rs:9:13
|
9 | let a = m_i + 1;
| ^^^^^^^ attempt to compute `i32::MAX + 1_i32`, which would overflow
|
= note: `#[deny(arithmetic_overflow)]` on by default
warning: `datetime-util` (bin "rssh3") generated 4 warnings
error: could not compile `datetime-util` due to previous error; 4 warnings emitted