Rust在调试和释放模式下以不同的方式对待有符号整数溢出。发生这种情况时,Rust会在调试模式下惊慌失措,而在发布模式下会默默地执行补码换行。
据我所知,C / C ++将带符号整数溢出视为未定义行为,部分原因是:
因此,如果Rust编译器确实执行与C / C ++编译器相同的关于有符号整数的优化,为什么The Rustonomicon
无论如何,Safe Rust都不会导致未定义的行为。
或者即使Rust编译器没有执行这种优化,Rust程序员仍然不会期望看到有符号整数环绕。不能将其称为“未定义行为”吗?
Rust在调试和释放模式下以不同的方式对待有符号整数溢出。发生这种情况时,Rust会在调试模式下惊慌失措,而在释放模式下会默默执行二进制补码换行。据我...
Q: