__ptr32, __ptr64__ptr32, __ptr64

Microsoft 전용Microsoft Specific

__ptr32 는 32 비트 시스템의 네이티브 포인터를 나타내며,는 __ptr64 64 비트 시스템의 네이티브 포인터를 나타냅니다.__ptr32 represents a native pointer on a 32-bit system, while __ptr64 represents a native pointer on a 64-bit system.

다음 예제에서는 이러한 포인터 형식 각각을 선언하는 방법을 보여 줍니다.The following example shows how to declare each of these pointer types:

int * __ptr32 p32;
int * __ptr64 p64;

32 비트 시스템에서로 선언 된 포인터는 __ptr64 32 비트 포인터로 잘립니다.On a 32-bit system, a pointer declared with __ptr64 is truncated to a 32-bit pointer. 64 비트 시스템에서로 선언 된 포인터는 __ptr32 64 비트 포인터로 강제 변환 됩니다.On a 64-bit system, a pointer declared with __ptr32 is coerced to a 64-bit pointer.

참고

__ptr32 __ptr64 /Clr: pure 로 컴파일하는 경우 또는를 사용할 수 없습니다.You cannot use __ptr32 or __ptr64 when compiling with /clr:pure. 그렇지 않으면 컴파일러 오류 C2472이 생성 됩니다.Otherwise, Compiler Error C2472 will be generated. /Clr: pure/clr: safe 컴파일러 옵션은 visual studio 2015에서 더 이상 사용 되지 않으며 visual studio 2017에서는 지원 되지 않습니다.The /clr:pure and /clr:safe compiler options are deprecated in Visual Studio 2015 and unsupported in Visual Studio 2017.

이전 버전과의 호환성을 위해 _ptr32_ptr64 는에 대 한 동의어 이며, __ptr32 __ptr64 컴파일러 옵션 /za ( 사용 안 함 언어 확장) 이 지정 되어 있지 않습니다.For compatibility with previous versions, _ptr32 and _ptr64 are synonyms for __ptr32 and __ptr64 unless compiler option /Za (Disable language extensions) is specified.

예제Example

다음 예제에서는 및 키워드를 사용 하 여 포인터를 선언 하 고 할당 하는 방법을 보여 줍니다 __ptr32 __ptr64 .The following example shows how to declare and allocate pointers with the __ptr32 and __ptr64 keywords.

#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

Microsoft 전용 종료END Microsoft Specific

참조See also

기본 제공 형식Built-in types