3个版本 (1个稳定版)
| 1.0.0 | 2024年6月3日 |
|---|---|
| 0.2.0 | 2022年12月27日 |
| 0.1.0 | 2022年12月22日 |
#202 在 硬件支持
每月74次下载
19KB
194 行
stdint
提供C99整数类型,如 uint_fast16_t、uint_least16_t 等,以便在标准和无 std 环境中使用这些类型的C库中进行交互。受Vojtech Kral的 C99 crate 启发。
该库默认使用 std crate。因此,您只需将依赖项添加到您的 Cargo.toml 文件中即可
[dependencies]
stdint = "*"
要在 no_std 环境中使用该库,请禁用默认功能
[dependencies]
stdint = { version = "*", default-features = false }
请注意,特定的类型别名取决于您的目标架构。在 docs.rs 上,int_fast16_t 类型目前显示为别名到 std::ffi::c_long;这是文档生成器的结果
pub type int_fast16_t = c_long;
实际的保证是
#[test]
fn int16() {
assert_eq!(size_of::<int16_t>(), 2);
assert!(size_of::<int_least16_t>() >= 2);
assert!(size_of::<int_fast16_t>() >= 2);
assert_eq!(size_of::<uint16_t>(), 2);
assert!(size_of::<uint_least16_t>() >= 2);
assert!(size_of::<uint_fast16_t>() >= 2);
}
要在 no_std 模式下运行测试,请执行
$ cargo test --no-default-features
定义的大小类型
| N | 确切大小(N位) | 具有至少N位的最小类型 | 具有至少N位的最快类型 |
|---|---|---|---|
8 |
int8_t、uint8_t |
int_least8_t、uint_least8_t |
int_fast8_t、uint_fast8_t |
16 |
int16_t、uint16_t |
int_least16_t、uint_least16_t |
int_fast16_t、uint_fast16_t |
32 |
int32_t、uint32_t |
int_least32_t、uint_least32_t |
int_fast32_t,uint_fast32_t |
64 |
int64_t,uint64_t |
int_least64_t,uint_least64_t |
int_fast64_t,uint_fast64_t |
特殊类型
| 类型 | 用途 |
|---|---|
intptr_t,uintptr_t |
能够容纳 *void 的类型 |
intmax_t,uintmax_t |
可用的最大整数类型 |
常量
根据 MIN 和 MAX 常量定义在 stdint.h 中,通过 consts 模块公开,例如 INT_FAST16_MIN 和 INT_FAST16_MAX。由于 Rust 的类型系统,这些值与 int_fast16_t::MIN 和 int_fast16_t::MAX 相同。
无运行时依赖
~0–1.8MB
~37K SLoC