我正在將一些舊的C代碼導入swift項目,並將其移植到純swift代碼中。Swift:如何禁用函數的整數溢出/下溢陷阱
一些它「加密」,其中確實像
let a = UInt8(x) // e.g. 30
let b = a - 237
在C這只是溢和環繞,這是罰款,這種特定的功能。
在swift中,這觸發了一個fatalError,並用EXC_BAD_INSTRUCTION終止了我的程序,因爲默認情況下swift被設計爲捕獲整數溢出/下溢。
我知道我可以通過編譯-Ofast在整個項目級別關閉此檢查,但我真的很想關閉溢出檢查這一行代碼(或者只是特定的功能本身)。
注:我特別想保留C函數的行爲,而不僅僅是促進東西來的Int32或Int64的
這特定的詞,似乎真的很難谷歌。
更新:答案是Overflow operators,這是
&-
減法&+
加法&*
爲乘法
我無法找到他們在我以前的搜索。哎呀
使用溢出運算符,例如'&-' – Cosyn