형변환에 대해 질문좀 드립니다.
튼튼
2023.04.01
질문 제목 : 질문 내용 :
#include stdio.h
#include tchar.h
#include windows.huint caldistance(uint a, uint b)
{
return a-b;
}int _tmain(void)
{
int val1=10;
int val2=20; _tprintf(_t(position %u, %u \n), (uint)&val1, (uint)&val2);
_tprintf(_t(distance: %d \n), caldistance((uint)&val1, (uint)&val2)); return 0;
}이것인데요. caldistance 함수에서 매개변수의 자료형이 uint 이더라구요.&val1 이렇게 주소값을 인자로 주면 int* 형으로 받아야 정상 아닌가요???그냥 int형으로 받으면 에러내면서 uint형으로 받으면 왜 에러를 내지 않고 돌아가는것일까요?그리고 윈도우에서의 long형과 int형의 차이는 뭔가요? 둘다 크기가 4비트면서 차이를 두는 이유가 궁금합니다.예를 들어 dword형이랑 int형 이렇게 나누는 이유요...(유닉스에서는 64비트 시스템에서 롱형이 8비트라서 그런건 알겠거든요.)