gpt4 book ai didi

pointers - __ptr32 和 __ptr64 有什么意义?

转载 作者:行者123 更新时间:2023-12-03 00:07:29 25 4
gpt4 key购买 nike

this MSDN article 中所述,微软有这两种类型注释来声明不同架构上的 native 指针。但是,在第二行:

On a 32-bit system, a pointer declared with __ptr64 is truncated to a 32-bit pointer. On a 64-bit system, a pointer declared with __ptr32 is coerced to a 64-bit pointer.

在我看来,声明并不重要;如果架构无论如何都会覆盖 __ptrXX 的声明为默认值,那么首先标记 __ptrXX 的意义何在?

我看到this answer说它是为了互操作,但如果声明基本上如上所述被重写,这对互操作有什么帮助?

最佳答案

声明和分配 32 位指针与实际使用它之间存在很大差异。换句话说,取消引用指针。如果您在 64 位进程中执行此操作,则没有其他选择,只能将其符号扩展为 64 位指针。这就是“强制”的意思。 可能会偶然起作用,但你必须非常幸运。尝试是没有意义的。

声明 __ptr32 的要点如该链接答案中所述,仅当您与 32 位进程进行互操作时才有意义。其中使用 32 位指针。这种情况并不常见。

关于pointers - __ptr32 和 __ptr64 有什么意义?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17792644/

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