以下代码返回错误:错误而传递参数到在pthread_create()函数 - 的Visual C++
error C2664: 'pthread_create' : cannot convert parameter 3 from 'void *(__cdecl *)(void)' to 'void *(__cdecl *)(void *)'
error C2664: 'pthread_create' : cannot convert parameter 3 from 'void *(__cdecl *)(void)' to 'void *(__cdecl *)(void *)'
代码:
#include <windows.h>
#include <stdio.h>
#include <pthread.h>
int main() {
pthread_t f2_thread, f1_thread;
void *f2(), *f1();
int i1,i2;
i1 = 1;
i2 = 2;
pthread_create(&f1_thread,NULL,f1,&i1);
pthread_create(&f2_thread,NULL,f2,&i2);
pthread_join(f1_thread,NULL);
pthread_join(f2_thread,NULL);
return 0;
}
void *f1(int *x){
int i;
i = *x;
Sleep(1);
printf("f1: %d",i);
pthread_exit(0);
}
void *f2(int *x){
int i;
i = *x;
Sleep(1);
printf("f2: %d",i);
pthread_exit(0);
}
环境:
- 的Visual C++ 2008与Pthreads Win32(http://sourceware.org/pthreads-win32/)