Поделиться через


__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

Завершение блока, относящегося только к системам Майкрософт

См. также

Встроенные типы