[Software]/Programming Tips2010. 3. 18. 19:35

http://wiki.kldp.org/wiki.php/32bitCodeTo64bit


TCP/IP 책의 예제를 해보다가 알게 되어 적는다.

example)

void* a;
int b;
a = (void*)b;  // warning 발생
b = (int)a;      // warning 발생

32bit machine 에서는 발생하지 않지만 64bit maching으로 compile하면 위와 같이 warning이 나온다.
64bit machine 에서 void* 가 64bit 이기 때문!!


a = (void*)(long int)b;  // ok
b = (int)(long int)a;      // ok

이렇게 바꿔주면 warning이 없어진다.


32bit machine : long int (32bit), int (32bit), void* (32bit)
64bit machine : long int (64bit), int (32bit), void* (64bit)
위의 링크 참고!!

Posted by 바트정