http://3dmpengines.tistory.com/520
http://blog.naver.com/qktxhtkdl/10110879615
UINT_PTR (32비트 및 64비트 호환 포인터연산)
#include "stdafx.h"
#include <Windows.h>
UINT_PTR CalDistance(UINT_PTR a, UINT_PTR b)
{
return a-b;
}
int _tmain(void)
{
INT32 val1 = 10;
INT32 val2 = 20;
_tprintf(_T("distance : %d \n") , CalDistance((UINT_PTR)&val1, (UINT_PTR)&val2));
return 0;
}
32비트 시스템과 64비트 시스템은 주소값의 범위가 다르기때문에
상호 호환이 가능한 코드를 사용하는 것이 좋다.
Polymorphic타입의 자료형을 사용해서 매크로정의에 따라 32비트 & 64비트 호환이 되는 코드는 위처럼 UINT_PTR을 사용한다.
PTR은 포인터 자체가 아닌, 포인터 연산을 위해 존재한다는 뜻으로 해석하면 된다.
http://vvalkyrie.tistory.com/705
출처: http://3dmpengines.tistory.com/520 [3DMP]