__ptr32, __ptr64

Microsoft-spezifisch

__ptr32 stellt einen nativen Zeiger auf einem 32-Bit-System dar, während __ptr64 er einen systemeigenen Zeiger auf einem 64-Bit-System darstellt.

Das folgende Beispiel zeigt, wie die einzelnen Zeigertypen deklariert werden:

int * __ptr32 p32;
int * __ptr64 p64;

Auf einem 32-Bit-System wird ein mit __ptr64 einem 32-Bit-Zeiger deklarierter Zeiger abgeschnitten. Auf einem 64-Bit-System wird ein mit __ptr32 einem 64-Bit-Zeiger deklarierter Zeiger in einen 64-Bit-Zeiger umgewandelt.

Hinweis

Sie können /clr:pure nicht verwenden __ptr32 oder __ptr64 kompilieren. Andernfalls wird Compilerfehler C2472 generiert. Die Optionen "/clr:pure " und "/clr:safe compiler" sind in Visual Studio 2015 veraltet und werden in Visual Studio 2017 nicht unterstützt.

Aus Gründen der Kompatibilität mit früheren Versionen sind _ptr32 und _ptr64 Synonyme für __ptr32 die __ptr64 Compileroption /Za (Spracherweiterungen deaktivieren) angegeben.

Beispiel

Das folgende Beispiel zeigt, wie Zeiger mit den __ptr32 und __ptr64 Schlüsselwort (keyword) deklariert und zugewiesen werden.

#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

Ende Microsoft-spezifisch

Siehe auch

Integrierte Typen