E0133
unsafe 代码被用在了 unsafe 块或 unsafe 函数之外。
错误代码示例:
unsafe fn f() { return; } // 这是 unsafe 代码
fn main() {
f(); // error: 调用 unsafe 函数需要 unsafe 函数或块
}
(直接)使用 unsafe 函数可能是危险的,并且安全检查是不允许的。例如:
- 解引用裸指针
- 通过 FFI 调用函数
- 调用了标记为 unsafe 的函数
通过将 unsafe 的指令(语句)与 unsafe 块进行包装,可以为部分代码放宽安全检查。例如:
unsafe fn f() { return; }
fn main() {
unsafe { f(); } // ok!
}
更多细节请参阅 The Book 中的 unsafe 部分 。
本译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。