#include

#include

#include

#include



using namespace std;


UINT_PTR CalDistance(UINT_PTR a, UINT_PTR b)

{

return a - b;

}

int _tmain()

{

INT val1 = 10;

INT val2 = 20;


_tprintf(_T("distance :%d\n"), CalDistance((UINT_PTR)&val1, (UINT_PTR)&val2));


return 0;

}


32비트로 빌드 했을때 결과가 

distance : 12


64비트로 빌드 했을 때 결과가

distance : -32 임


val1이 먼저 선언됐으니, 주소값이 더 낮아야 한다고 생각했는데,

32비트에선 더 높고


64비트는 내 예상처럼 낮네


원래 이런건가?