首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >crossbeam_epoch::Shared::as_raw所说的“将指针转换为原始指针(没有标记)”是什么意思?

crossbeam_epoch::Shared::as_raw所说的“将指针转换为原始指针(没有标记)”是什么意思?
EN

Stack Overflow用户
提问于 2020-08-23 17:01:25
回答 1查看 112关注 0票数 0

有人能把翻译成对我有意义的东西吗?

将指针转换为原始指针(没有标记)。

  1. 指针和原始指针有什么区别? Stack溢出原始指针标记既不表示“智能”,也不表示“共享”,这再次令人费解。
  2. 横梁的Shared::as_raw“标签”到底是什么?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-23 17:16:11

  • crossbeam_epoch::Shared是一个智能指针。也就是说,一个指针加上额外的东西。在C++或Rust中,智能指针是用于指针包装器的术语,它添加了以下任何内容:
代码语言:javascript
复制
- Ownership information
- Lifetime information
- Packing extra data in unused bits
- Copy-on-write behavior
- Reference counting

在这种情况下,原始指针只是包装的指针,没有所有额外的东西。

  • crossbeam_epoch::Shared符合(除其他外)“在未使用比特中打包额外数据”的类别。现代计算机中的大多数数据都是对齐的,也就是说,地址是两个幂的倍数。这意味着所有低位的地址总是0。人们可以利用这个事实在指针中存储一些额外的信息。 这个额外的数据由这个特定的库称为https://docs.rs/crossbeam-epoch/0.8.2/crossbeam_epoch/struct.Shared.html#method.with_tag,但是这个术语并不像原始指针那么常见。
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63549744

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档