Rust documentationbool的尺寸上是模糊的

fn main() {
    use std::mem;
    println!("{}",mem::size_of::<bool>()); //always 1?
}

推荐答案

rust 会在bool小时内释放i1到LLVM,并且依赖于它产生的任何东西.对于Rust目前支持的所有平台,LLVM使用i8(一个字节)表示内存中的i1.另一方面,由于到目前为止,Rust开发商一直拒绝promise 特定的bool代表性,因此future 并不确定.

因此,它由当前的实现保证,但不受任何规范的保证.

你可以在this RFC discussion和相关的公关和问题中找到更多细节.

编辑:请参阅下面的答案,以了解更多关于自该答案发布以来在Rust中引入的变化的信息.

Rust相关问答推荐

为什么我的梅森素数代码的指数越大,速度就越快?

当Option为None时,Option数组是否占用Rust中的内存?

创建包含缺失值的框架

MutexGuard中的过滤载体不需要克隆

获取字符串切片(&;str)上的切片([ia..ib])返回字符串

告诉Rust编译器返回值不包含构造函数中提供的引用

为什么基于高山Linux的Docker镜像不能在绝对路径下找到要执行的命令?

字段类型为Boxed的 struct 的生存期必须超过static

如何在Rust中缩短数组

Rust proc_macro 和 syn:解析空格

为什么这个闭包没有实现Fn?

缺失serde的字段无法设置为默认值

Some(v) 和 Some(&v) 有什么区别?

rust tokio::spawn 在 mutexguard 之后等待

如何将 Rust 字符串转换为 i8(c_char) 数组?

将 `&T` 转换为新类型 `&N`

是否可以预测堆栈溢出?

如何在 Rust 中创建最后一个元素是可变长度数组的 struct ?

为什么我不能为 Display+Debug 的泛型类型实现 std::error::Error 但有一个不是泛型参数的类型?

如何在不设置精度的情况下打印浮点数时保持尾随零?