Bagikan melalui


__ptr32, __ptr64

Khusus Microsoft

__ptr32 mewakili pointer asli pada sistem 32-bit, sementara __ptr64 mewakili pointer asli pada sistem 64-bit.

Contoh berikut menunjukkan cara mendeklarasikan masing-masing jenis pointer ini:

int * __ptr32 p32;
int * __ptr64 p64;

Pada sistem 32-bit, pointer yang dinyatakan dengan __ptr64 dipotong menjadi pointer 32-bit. Pada sistem 64-bit, pointer yang dinyatakan dengan __ptr32 dipaksa ke pointer 64-bit.

Catatan

Anda tidak dapat menggunakan __ptr32 atau __ptr64 ketika mengkompilasi dengan /clr:pure. Jika tidak, Compiler Error C2472 akan dihasilkan. Opsi pengkompilasi /clr:pure dan /clr:safe tidak digunakan lagi di Visual Studio 2015 dan tidak didukung di Visual Studio 2017.

Untuk kompatibilitas dengan versi sebelumnya, _ptr32 dan _ptr64 adalah sinonim untuk __ptr32 dan __ptr64 kecuali opsi pengompilasi /Za (Nonaktifkan ekstensi bahasa) ditentukan.

Contoh

Contoh berikut menunjukkan cara mendeklarasikan dan mengalokasikan pointer dengan __ptr32 kata kunci dan __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 Khusus Microsoft

Lihat juga

Jenis bawaan