#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비트는 내 예상처럼 낮네
원래 이런건가?
disas main - dc App