Types 根据系统切换数据类型?
我有一个项目,我需要从磁盘读取一些字节。如果系统是64位系统,这将读取一个双字以获得正确的字节数。如果是32位系统,它将读取一个单词 我希望有一种类型可以代表这两种选项中的任何一种。称之为Types 根据系统切换数据类型?,types,architecture,rust,32bit-64bit,Types,Architecture,Rust,32bit 64bit,我有一个项目,我需要从磁盘读取一些字节。如果系统是64位系统,这将读取一个双字以获得正确的字节数。如果是32位系统,它将读取一个单词 我希望有一种类型可以代表这两种选项中的任何一种。称之为SystemWord 我不确定最好的方式来处理这个问题,让我有这样的东西 let test: SystemWord = 0x01; 它将立即知道是选择u64还是u32 有没有人能提供一些关于最好的方法的指导?我对生锈还是相当陌生。你是说使用,就像 这就是你看起来真正想要的解决方案。您所问问题的解决方案如下:
SystemWord
我不确定最好的方式来处理这个问题,让我有这样的东西
let test: SystemWord = 0x01;
它将立即知道是选择u64还是u32
有没有人能提供一些关于最好的方法的指导?我对生锈还是相当陌生。你是说
使用,就像
这就是你看起来真正想要的解决方案。您所问问题的解决方案如下:
#[cfg(target_pointer_width=“32”)]
类型SystemWord=u32;
#[cfg(target_pointer_width=“64”)]
输入SystemWord=u64;
但是当你可以使用usize
时,不要这样做。事实上,除非你必须这样做,否则不要这样做,因为这通常会导致你的代码中有两个或两个以上的代码路径:一个是经过良好测试的,另一个是根本没有经过测试的。wow nice!usize,这很有趣。非常感谢。如果我把它设置为usize,我可以让锈处理它。