我的默認Rust具有整數溢出保護啓用,並將停止溢出時執行的程序。大量算法需要溢出才能正常工作(SHA1,SHA2等)如何關閉整數溢出保護?
4
A
回答
4
使用Wrapping
類型,或直接使用wrapping functions。這些禁用溢出檢查。 Wrapping
類型允許您像平常一樣使用普通操作符。
此外,當您以「發佈」模式(例如使用cargo build --release
)編譯代碼時,會忽略溢出檢查以提高性能。不要依賴這個,使用上面的類型或函數,以便代碼在調試版本中工作。
1
Francis Gagné's answer絕對是您的案例的正確答案。但是,我會說有一個編譯器選項來禁用溢出檢查。我看不出有任何理由去使用它,但它的存在,可能還有約被稱爲:
use std::u8;
fn main() {
u8::MAX + u8::MAX;
}
編譯和運行:
$ rustc overflow.rs
$ ./overflow
thread '<main>' panicked at 'arithmetic operation overflowed', overflow.rs:4
$ rustc -Z force-overflow-checks=no overflow.rs
$ ./overflow
$
+1
現在甚至可以在貨物上使用這個標誌:即使貨物穩定,貨物鏽蝕 - -Z強制溢出檢查=否。 –
相關問題
- 1. 如何禁用溢出保護
- 2. MicroSD卡:如何關閉寫保護
- 3. 如何關閉Glibc運行時保護?
- 4. 關閉堆棧保護
- 5. 保護整數
- 6. 整數溢出
- 7. 在LotusScript中無符號長整數?如何長時間關閉溢出檢測?
- 8. 整數溢出/下溢
- 9. 問題與堆棧溢出保護和緩衝區溢出
- 10. 錯誤:protect():保護堆棧溢出
- 11. 保護PHP註冊表格溢出?
- 12. fread保護堆棧溢出錯誤
- 13. 什麼是Windows 2012R SEH溢出保護?
- 14. 整數不溢出
- 15. 長整數溢出
- 16. 整數溢出C
- 17. rlimit64整數溢出
- 18. 整數溢出如何被利用?
- 19. 你如何計算整數溢出?
- 20. 如何在java中保護方法(溢出等)
- 21. Swift:如何禁用函數的整數溢出/下溢陷阱
- 22. Javascript處理整數溢出和下溢嗎?如果是,如何?
- 23. 整數溢出PHP模數
- 24. Webmin關閉防幀內保護
- 25. IE.navigate2失敗,保護模式關閉
- 26. 如何在Android Studio中關閉程序時保存整數值
- 27. java如何處理整數溢出和下溢?
- 28. symfony 1.4如何關閉一個註冊表單的csrf保護?
- 29. 如何在32位保護模式下關閉機器
- 30. 如何關閉長時間執行腳本的閃存保護?
出於兼容性考慮,觀察到一些環繞功能AREN不穩定,直到1.2.0,但包裝類型已準備就緒,可供使用。 –