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)
위의 링크 참고!!
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)
위의 링크 참고!!