我在我从事的项目中经常看到这种类型的代码:
reinterpret_cast<long>(somePointer)
我不明白这有什么意义。它通常用于用户定义的类, 也就是说,somePointer 是指向用户定义类实例的指针。
感谢您的帮助
最佳答案
它用于将指针的地址转换为其数字表示并将其存储为 long
.
当您需要在不支持实际指针的特定上下文中存储指针时,通常会使用它。例如,一些 API 允许您传递一个数字键,它们会在该 API 的任何回调中返回给您。您可以创建一个对象并将其转换为一个数字并将其提供给 API。然后在回调中,您将数字转换回带有 pointer=reinterpret_cast<type*>(number)
的指针。然后访问您的数据。
关于c++ - reinterpret_cast a pointer as long 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17880960/