__ptr32, __ptr64
Section spécifique à Microsoft
__ptr32
représente un pointeur natif sur un système 32 bits, tandis qu’il __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é vers un pointeur 32 bits. Sur un système 64 bits, un pointeur déclaré avec __ptr32
est coerced vers un pointeur 64 bits.
Remarque
Vous ne pouvez pas utiliser __ptr32
ou __ptr64
lors de la compilation avec /clr :pure. Sinon, l’erreur du compilateur C2472 est générée. Les options du compilateur /clr :pure et /clr :safe sont déconseillées dans Visual Studio 2015 et non prises en charge dans Visual Studio 2017.
Pour la compatibilité avec les versions précédentes, _ptr32 et _ptr64 sont des synonymes et __ptr64
__ptr32
, sauf si l’option du compilateur /Za (désactiver les extensions de langage) est spécifiée.
Exemple
L’exemple suivant montre comment déclarer et allouer des pointeurs avec les mot clé et __ptr64
les __ptr32
points de terminaison.
#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
FIN de la section spécifique à Microsoft
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour