在使用pthread_create()函数时,其原型如下:
int pthread_create(pthread_t *tidp,const pthread_attr_t *attr,(void*)(*start_rtn)(void*),void *arg);
发现这个函数的第三个参数的类型为void * (*)(void *)
void * (*)(void *)是指向函数的指针,其函数相当于void * a(void *) (其中a为函数名)
例子:
自定义的thread函数为void thread(void *name)
编译re1=pthread_create(&id1,NULL,(void *)thread,name1);通过
编译re2=pthread_create(&id2,NULL,thread,name2);,会有如下警告:
若自定义的thread函数为void * thread(void *name)
编译 re1=pthread_create(&id1,NULL,(void *)thread,name1); 和 re2=pthread_create(&id2,NULL,thread,name2);都没有警告