__ptr32, __ptr64
Spécifique à Microsoft
__ptr32 représente un pointeur natif sur un système 32 bits, tandis que __ptr64 représente un pointeur natif sur un système 64 bits.
L'exemple suivant montre comment déclarer chacun de ces types pointeur :
int * __ptr32 p32;
int * __ptr64 p64;
sur un système 32 bits, un pointeur déclaré avec __ptr64 est tronqué à un pointeur 32 bits.Sur un système 64 bits, un pointeur déclaré avec __ptr32 est converti en un pointeur 64 bits.
[!REMARQUE]
Vous ne pouvez pas utiliser __ptr32 ou __ptr64 lors de la compilation avec /clr:pure.Sinon, Compiler Error C2472 est généré.
Exemple
l'exemple suivant montre comment déclarer et allouer des pointeurs avec les mots clés d' __ptr32 et d' __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;
}