__ptr32、__ptr64
Microsoft 专用
__ptr32
表示 32 位系统中的本机指针,而 __ptr64
表示 64 位系统中的本机指针。
以下示例演示如何声明所有这些指针类型:
int * __ptr32 p32;
int * __ptr64 p64;
在 32 位系统中,使用 __ptr64
声明的指针被截断为 32 位指针。 在 64 位系统中, 使用 __ptr32
声明的指针被强制转换为 64 位指针。
注意
使用 /clr:pure 进行编译时,不能使用 __ptr32
或 __ptr64
。 否则,将生成编译器错误 C2472。 “/clr:pure”和“/clr:safe”编译器选项在 Visual Studio 2015 中已弃用,并且在 Visual Studio 2017 中不受支持。
为了与以前的版本兼容,除非指定了编译器选项 /Za(禁用语言扩展),否则 _ptr32 和 _ptr64 是 __ptr32
和 __ptr64
的同义词。
示例
以下示例演示如何使用 __ptr32
和 __ptr64
关键字声明和分配指针。
#include <cstdlib>
#include <iostream>
int main()
{
using namespace std;
int * __ptr32 p32;
int * __ptr64 p64;
p32 = (int * __ptr32)malloc(4);
*p32 = 32;
cout << *p32 << endl;
p64 = (int * __ptr64)malloc(4);
*p64 = 64;
cout << *p64 << endl;
}
32
64
结束 Microsoft 专用
另请参阅
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈