gpt4 book ai didi

types - 基于系统切换数据类型?

转载 作者:行者123 更新时间:2023-11-29 08:06:34 24 4
gpt4 key购买 nike

我有一个项目需要从磁盘读取一些字节。如果系统是 64 位系统,这将读取一个双字以获得正确的字节数。如果是 32 位系统,它将读取一个字。

我想要一个可以代表这些选项的类型。称它为 SystemWord

我不确定以一种允许我拥有类似东西的方式来处理这个问题的最佳方式

let test: SystemWord = 0x01;

它会立即知道是选择 u64 还是选择 u32。

任何人都可以提供有关执行此操作的最佳方法的任何指导吗?我对 Rust 还是很陌生。

最佳答案

你的意思是使用,作为explained in the Rust Book

这就是您看起来实际上想要的解决方案。你的解决方案是conditional compilation ,像这样:

#[cfg(target_pointer_width="32")]
type SystemWord = u32;

#[cfg(target_pointer_width="64")]
type SystemWord = u64;

但是当你可以使用 usize 时不要这样做。事实上,除非你绝对必须这样做,否则不要这样做,因为这通常会导致你的代码中有两个或更多代码路径:一个经过良好测试的,另一个通常没有完全测试

关于types - 基于系统切换数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35400873/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com