gpt4 book ai didi

rust - 在rust中 isize 和 usize 可以不同吗?

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

isize 和 usize 可以不同吗?它们都可以用于内存大小、索引、偏移量。

因为 usize 用于数组,为什么我们不只使用 usize

我是 Rust 的新手,所以这可能是一个基本问题。

更新:在 32 位系统上它们都是 32 位长,在 64 位系统上它们都是 64 位长。不考虑标志。

最佳答案

在 32 位系统上,isizei32相同和 usizeu32相同.在 64 位系统上,isizei64相同和 usizeu64相同.

  • usize不能为负数,通常用于内存地址、位置、索引、长度(或大小!)。
  • isize 可以为负数,通常用于偏移地址、位置、索引或长度。

在所有当前支持的架构中usizeisize大小彼此相同,但情况可能并非总是如此!包含 CHERI 的新型指令集需要在指针中包含元数据以跟踪来源。在 64 位系统上,此方案需要额外的 64 位元数据,使指针成为 128 位,但指针偏移量仍然可以是 64 位。

有一些关于 CHERI 支持将如何影响 Rust 的讨论 here .

关于rust - 在rust中 isize 和 usize 可以不同吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55506647/

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