警告warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
一般:
void *tfn(void *arg)
{
int i;
i = (int)arg;
sleep(i); //通过i来区别每个线程
printf(“I’m %dth thread, Thread_ID = %lu\n”, i+1, pthread_self());
return NULL;
}
。。。
int main(int argc, char *argv[])
{
for (i = 0; i < n; i++) {
pthread_create(&tid, NULL, tfn, (void *) i);
//将i转换为指针,在tfn中再强转回整形。
}
}
在编译时,由于字节数不一样,可能会出现类型转换的警告。
当使用下面时就不会了
i = (intptr_t)arg;
。。。。
pthread_create(&tid, NULL, tfn,(void *)(intptr_t)i);