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
반응형
'프로그래밍(Programming) > c++, 11, 14 , 17, 20' 카테고리의 다른 글
DWORD -> float 로 변환과 그 역 (0) | 2012.11.01 |
---|---|
멤버함수포인터와 std::map 의 응용 (0) | 2012.11.01 |
행렬 배열레퍼런스 비트연산으로 가져오기 아이디어 (0) | 2012.11.01 |
이름없는 union 과 struct 로 행렬클래스 생성 아이디어 (1) | 2012.11.01 |
restrict 포인터 {void* restrict pt} (0) | 2012.11.01 |