错误:从'void *'转换为'int'会失去精度

时间:2016-06-14 11:30:39

标签: c++ c multithreading pthreads

虽然这似乎是一个重复的问题,但我找不到标记正确的答案。 此外,我发现它们对我的问题没有帮助

这是我的代码

void *testClassdMain(void *temp){
   initClassD((int)(temp),(char *)"localhost",10101,(char *)"localhost",10102);
   char txt[255]={0,};
   int len=0;

   while(1){
     fgets(txt,255,stdin);
     len=strlen(txt);
     ClassDSend((uint8_t *)txt, len);
   }
   return NULL;
 }

 int main(int argc, char *argv[]){

   int mode=0;

   if (signal(SIGINT, sig_handler) == SIG_ERR){
     printf("Cant catch\n");
     return -1;
   }

   if(!strcmp(argv[1],"server")){
     mode=1;
   }
   pthread_attr_init(&testAttr);
   pthread_attr_setdetachstate(&testAttr, PTHREAD_CREATE_JOINABLE);
   if(pthread_create(&testThrdId, &testAttr, testClassdMain, (void*)mode )){
     printf("Error in creating a thread\n");
     return -1;
   }
   pthread_exit(NULL);
   return 0;
 }

虽然它试图创建一个线程,但它会抛出错误

main.c: In function ‘void* testClassdMain(void*)’:
main.c:30: error: cast from ‘void*’ to ‘int’ loses precision

请指导我

先谢谢

0 个答案:

没有答案