__ptr32, __ptr64
Sezione specifica Microsoft
__ptr32 rappresenta un puntatore nativo in un sistema a 32 bit, mentre __ptr64 rappresenta un puntatore nativo in un sistema a 64 bit.
Di seguito viene illustrato come dichiarare ognuno dei seguenti tipi di puntatore:
int * __ptr32 p32;
int * __ptr64 p64;
In un sistema a 32 bit, un puntatore dichiarato con __ptr64 viene troncato per corrispondere a un puntatore a 32 bit. In un sistema a 64 bit, un puntatore dichiarato con __ptr32 viene forzato per corrispondere a un puntatore a 64 bit.
Nota
Non è possibile utilizzare __ptr32 o __ptr64 quando si esegue la compilazione con /clr:pure.In caso contrario, verrà generato un Compiler Error C2472.
Esempio
Con il seguente esempio, viene illustrato come dichiarare e allocare i puntatori con le parole chiave __ptr64 e __ptr32.
#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;
}