此代码显示char需要4个字节:
println!("char : {}", std::mem::size_of::<char>());
char?在https://play.rust-lang.org/我也得到4个字节
Mat*_* M. 11
首先:charRust中的一个唯一的整数值表示Unicode标量值.例如,考虑一下(又名桩的Poo,又名U + 1F4A9),在Rust中它将由a表示char,其值为128169十进制(0x1F4A9以十六进制表示):
fn main() {
    let c: char = "".chars().next().unwrap();
    println!(" is {} ({})", c, c as u32);
}
在围栏上.
据说,Rust char是4个字节,因为4个字节是2个字节的最小功率,它可以保存任何Unicode标量值的整数值.该决定是由域驱动的,而不是由架构限制驱动的.
注意:对标量值的强调是我们看到的许多"字符"实际上是由Unicode中的多个组合字符组成的字形,在这种情况下char需要多个字符.
char是四个字节。它始终是四个字节,它将始终是四个字节。它是四个字节,并且将保留四个字节。
这不是为了什么特别的事情;四个字节只是可以存储任何 Unicode 标量值的 2 的最小幂。各种其他语言做同样的事情。
Char是四个字节,它不依赖于架构。
为什么?根据 UTF-8 维基百科的文章。
前 128 个字符 (US-ASCII) 需要一个字节。接下来的 1,920 个字符需要两个字节进行编码。基本多语言平面的其余部分中的字符需要三个字节,其中几乎包含所有常用字符。Unicode 其他平面中的字符需要四个字节。
因此,如果您想表示任何可能的Unicode 字符,编译器必须节省 4 个字节。
您还应该考虑字节对齐:http : //www.eventhelix.com/realtimemantra/ByteAlignmentAndOrdering.htm