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/