gpt4 book ai didi

c++ - 什么是转换指针

转载 作者:行者123 更新时间:2023-11-30 01:49:25 26 4
gpt4 key购买 nike

我知道您可以将 int 等类型转换为 float,但什么是转换指针?

例如,我一直在查看 Direct X API 的一些代码

reinterpret_cast<void**>(&mDirect3DDevice)

我不明白这里发生了什么。我认为转换是当您基本上将一种类型转换为另一种类型时。

最佳答案

转型确实是将一种类型转换为另一种类型,或者更准确地说,将一种类型的值转换为另一种类型的值。

在您的例子中,您正在将指向任何 mDirect3DDevice 的指针转换为指向 void * 的指针。

不过,一般来说,重新解释转换指针不是很有用,因为您无法保证结果有用。唯一合理的重新解释转换是:

  • 往返于 void *,这是往返保值(也就是说,任何对象指针都可以转换为指向 void 的指针,然后返回取回原始值),但这些应该用 static_casts 来完成;
  • 往返于char *,这对于访问底层字节表示的对象很有用(例如用于序列化);
  • 在指向与布局兼容的标准布局类型(例如 union 的通用初始序列或整数类型的签名版本)的指针之间。

重新解释指针并取消引用结果可以让您假装一种类型的值实际上是另一种类型的值——这只在非常有限的情况下才有意义。 p>

关于c++ - 什么是转换指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29157678/

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