__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 专用

另请参阅

内置类型