2013년 10월 1일 화요일

쓰레드에 arg인자 받을때warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]

sol:

 pthread_create(&func_node_thread, NULL, NodeInfoThread, (void*)Socket);


 void    *NodeInfoThread(void *_sock) {

         int sock = *(int *)_sock;


       

        int sock = (int) ((void*) _sock); <- 컴파일시 오류는 안나지만 원하는 결과를 못얻는다.. 주의

C표준은  int를 void*로 또는 그 반대로 캐스팅을 때의 결과를 정의하지 않았다. 하지만 대부분의 C 컴파일러는 이런동작을 허용하고 원하는 결과를 내놓는다.