Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么usize::max_value()在64位Windows上返回无符号32位整数的最大值?_Windows_Rust - Fatal编程技术网

为什么usize::max_value()在64位Windows上返回无符号32位整数的最大值?

为什么usize::max_value()在64位Windows上返回无符号32位整数的最大值?,windows,rust,Windows,Rust,附注: 但当我运行一个简单的测试时: use std::usize; fn main() { println!("{}", usize::max_value()); } 打印号码:4294967295 我的项目只进行了初始化,2行使用std::usize;还有普林顿!{},usize::max_值;补充说,没有其他改变 我的rustc输出-版本-详细: rustc 1.41.1 f3e1a954d 2020-02-24 二进制代码:rustc 提交哈希:f3e1a954d2ead4e

附注:

但当我运行一个简单的测试时:

use std::usize;

fn main() {
    println!("{}", usize::max_value());
}
打印号码:4294967295

我的项目只进行了初始化,2行使用std::usize;还有普林顿!{},usize::max_值;补充说,没有其他改变

我的rustc输出-版本-详细:

rustc 1.41.1 f3e1a954d 2020-02-24 二进制代码:rustc 提交哈希:f3e1a954d2ead4e2fc197c7da7d71e6c61bad196 提交日期:2020-02-24 主机:i686 pc windows msvc 发布日期:1.41.1 LLVM版本:9.0 删除Rust并使用64位Windows Rustop安装程序重新安装后,我得到:

当前安装选项: 默认主机三元组:x86_64-pc-windows-msvc 默认工具链:稳定 配置文件:默认值 修改路径变量:是 但当我运行Rustop toolchain list时,它会打印一个项目:

stable-i686-pc-windows-msvc默认值 这里发生了什么?

正如usize的文档所说:

此原语的大小是引用内存中任何位置所需的字节数。例如,在32位目标上,这是4个字节,在64位目标上,这是8个字节

4294967295是32位整数的最大大小;从而表明您是为32位平台编译的

这一点可以通过您的rustc输出得到证实:

主机:i686 pc windows msvc

您已安装32位Windows编译器。64位编译器表示x86_64-pc-windows-*

您可以将默认的生锈主机更改为64位:

设置默认主机x86_64-pc-windows-msvc 然后,您可能需要卸载并重新安装stable toolchain以将其切换到64位

另见:


如果你的系统真的是64位的——如果你真的想要一个关于正在发生什么的答案——你需要提供足够的信息让某人真正回答这个问题。i、 e.系统信息以及您是如何编译和运行此程序的。@PeterHall我不确定需要提供什么信息,请留下评论,我会添加它,并记住在以后遇到类似问题时添加信息。文档可能需要改进,也许示例可以用cfg注释性语言编写,所以请说明您用于编译和运行程序的命令。
use std::usize;

fn main() {
    println!("{}", usize::max_value());
}