2 个版本
0.1.1 | 2023年8月10日 |
---|---|
0.1.0 | 2021年2月26日 |
#867 在 开发工具
1,845 每月下载量
在 2 个 Crates 中使用 (via ledger_device_sdk)
8KB
103 行
Const-zero
提供 core::mem::zeroed()
的 const 版本。
示例用法
示例用法
use const_zero::const_zero;
struct OpaqueStruct {
nothing: core::ffi::c_void,
};
static mut zeroed_opaque: OpaqueStruct = unsafe {const_zero!(OpaqueStruct)};
理想情况下 const_zero 将是一个泛型函数,但 const 泛型需要更多的发展首先 (const_fn_transmute
, const_generics
, const_evaluatable_checked
)
与 std::mem::zeroed
的不同
const_zero
将填充位清零,而 std::mem::zeroed
不清零
它是如何工作的?
简化的版本是
union TypeAsBytes<T> {
bytes: [u8; core::mem::size_of::<T>()],
inner: T,
};
可以用以下方式初始化
TypeAsBytes {bytes: [0; core::mem::size_of::<T>()]};
如果您想省去依赖,请在您的代码中使用这个技巧