__ptr32, __ptr64
Specyficzne dla firmy Microsoft
__ptr32
reprezentuje natywny wskaźnik w systemie 32-bitowym, a jednocześnie __ptr64
reprezentuje natywny wskaźnik w systemie 64-bitowym.
W poniższym przykładzie pokazano, jak zadeklarować każdy z tych typów wskaźników:
int * __ptr32 p32;
int * __ptr64 p64;
W systemie 32-bitowym wskaźnik zadeklarowany za __ptr64
pomocą jest obcinany do wskaźnika 32-bitowego. W systemie 64-bitowym wskaźnik zadeklarowany za pomocą __ptr32
elementu jest coerced do wskaźnika 64-bitowego.
Uwaga
Nie można użyć __ptr32
polecenia lub __ptr64
podczas kompilowania z /clr:pure. W przeciwnym razie zostanie wygenerowany błąd kompilatora C2472. Opcje kompilatora /clr:pure i /clr:safe są przestarzałe w programie Visual Studio 2015 i nieobsługiwane w programie Visual Studio 2017.
Aby uzyskać zgodność z poprzednimi wersjami, _ptr32 i _ptr64 są synonimami __ptr32
i __ptr64
chyba że określono opcję kompilatora /Za (Wyłącz rozszerzenia języka).
Przykład
W poniższym przykładzie pokazano, jak zadeklarować i przydzielić wskaźniki za __ptr32
pomocą słów kluczowych i __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
END Microsoft Specific
Zobacz też
Opinia
https://aka.ms/ContentUserFeedback.
Dostępne już wkrótce: W 2024 r. będziemy stopniowo wycofywać zgłoszenia z serwisu GitHub jako mechanizm przesyłania opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla