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