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。