unsafe:把 C 风险限制在边界
C 开发者第一次看到 unsafe,很容易把它理解成“Rust 里可以写 C 的地方”。
这个理解太粗。
unsafe 不是关闭 Rust 所有检查,也不是把整段代码变回 C。它只允许你做少数编译器无法静态证明安全的操作,例如解引用裸指针、调用 FFI 函数、访问可变全局变量。
C 开发者第一次看到 unsafe,很容易把它理解成“Rust 里可以写 C 的地方”。
这个理解太粗。
unsafe 不是关闭 Rust 所有检查,也不是把整段代码变回 C。它只允许你做少数编译器无法静态证明安全的操作,例如解引用裸指针、调用 FFI 函数、访问可变全局变量。