Skip to content
On this page

unsafe 与 FFI

unsafe 块能力

解引用裸指针、调用 unsafe fn、修改可变静态量、实现 unsafe trait 等。unsafe 缩小信任边界:调用者须保证不变式,编译器不再校验部分规则。

FFI 与 extern "C"

与 C ABI 交互:#[repr(C)] 控制布局;字段顺序与对齐必须与对方头文件一致。字符串以 CStr/CString 管理 NUL 结尾与所有权。

transmute 与未定义行为

任意类型重解释极易 UB;优先使用安全抽象与 MaybeUninit 等类型状态 API。

最小化范围

unsafe 块应尽可能小并集中封装在模块边界,对外暴露安全 API;代码审查与 Miri(实验性)辅助检测 UB。

技术文库