size - bool 保证是 1 个字节吗?

标签 size rust primitive-types

Rust documentation bool 的大小含糊不清。
它保证是 1 个字节,还是像 C++ 中那样未指定?

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

最佳答案

Rust 将 i1 发送到 LLVM 以获取 bool 并依赖于它生成的任何内容。对于目前 Rust 支持的所有平台,LLVM 使用 i8(一个字节)在内存中表示 i1。另一方面,对于 future 并不确定,因为到目前为止,Rust 开发人员一直拒绝 promise 特定的 bool 表示。

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

您可以在 this RFC discussion 中找到更多详细信息以及链接的 PR 和问题。

请参阅 E_net4's answer有关自此答案发布以来 Rust 中引入的更改的更多信息。

关于size - bool 保证是 1 个字节吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38047167/

相关文章:

java - 为什么java数字不可迭代

java - ArrayList<int> 与 ArrayList<int[]>?

image - 根据图像大小重命名图像的 Bash 脚本?

php - MySQL 大表管理?

rust - 带后缀的数字文字,比如 0u8,在 Rust 中意味着什么?

rust - 通用结构的过滤向量

Dart 抽象原语实现

css - 如何为视差图像设置 100% 宽度?

在 C 中将多个字节转换为文件大小

module - 我如何从子模块中获取 "export"内容?