__ptr32, __ptr64
Блок, относящийся только к системам Майкрософт
__ptr32
представляет собственный указатель на 32-разрядную систему, а также __ptr64
представляет собственный указатель на 64-разрядную систему.
В следующем примере показано, как объявить каждый из этих типов указателей.
int * __ptr32 p32;
int * __ptr64 p64;
В 32-разрядной системе указатель, объявленный с __ptr64
усечением до 32-разрядного указателя. В 64-разрядной системе указатель, объявленный с __ptr32
помощью, принудается к 64-разрядному указателю.
Примечание.
Нельзя использовать __ptr32
или при компиляции с помощью /clr:pure__ptr64
. В противном случае будет создана ошибка компилятора C2472. Параметры компилятора /clr:pure и /clr:safe компилятора устарели в Visual Studio 2015 и не поддерживаются в Visual Studio 2017.
Для совместимости с предыдущими версиями _ptr32 и _ptr64 являются синонимами __ptr32
и __ptr64
если параметр компилятора /Za (Отключить расширения языка) не указан.
Пример
В следующем примере показано, как объявлять и выделять указатели с __ptr32
ключевыми словами.__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
Завершение блока, относящегося только к системам Майкрософт