Compartilhar via


__ptr32, __ptr64

Seção específica da Microsoft

__ptr32 representa um ponteiro nativo em um sistema de 32 bits, enquanto __ptr64 representa um ponteiro nativo em um sistema de 64 bits.

O exemplo a seguir mostra como declarar cada um desses tipos de ponteiro:

int * __ptr32 p32;
int * __ptr64 p64;

Em um sistema de 32 bits, um ponteiro declarado com __ptr64 é truncado em um ponteiro de 32 bits. Em um sistema de 64 bits, um ponteiro declarado com __ptr32 é imposto a um ponteiro de 64 bits.

Observação

Você não pode usar __ptr32 ou __ptr64 ao compilar com /clr:pure. Caso contrário, será gerado o Erro do Compilador C2472. As opções do compilador /clr:pure e /clr:safe foram preteridas no Visual Studio 2015 são incompatíveis com o Visual Studio 2017.

Para compatibilidade com versões anteriores, _ptr32 e _ptr64 são sinônimos de __ptr32 e __ptr64, a menos que a opção do compilador /Za (Desabilita extensões de linguagem) seja especificada.

Exemplo

O exemplo a seguir mostra como declarar e alocar os ponteiros com as palavras-chave __ptr32 e __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

Fim da seção específica da Microsoft

Confira também

Tipos internos