Visual c++ 将参数传递到pthread_create()函数-visualc++;
以下代码正在返回错误: 错误C2664:“pthread_create”:无法从“void”转换参数3 *(uu cdecl*)(void)“至”void*(u cdecl*)(void*)” 错误C2664:“pthread_create”:无法从“void”转换参数3 *(uu cdecl*)(void)“至”void*(u cdecl*)(void*)” 代码:Visual c++ 将参数传递到pthread_create()函数-visualc++;,visual-c++,pthreads,Visual C++,Pthreads,以下代码正在返回错误: 错误C2664:“pthread_create”:无法从“void”转换参数3 *(uu cdecl*)(void)“至”void*(u cdecl*)(void*)” 错误C2664:“pthread_create”:无法从“void”转换参数3 *(uu cdecl*)(void)“至”void*(u cdecl*)(void*)” 代码: #包括 #包括 #包括 int main(){ pthread_t f2_螺纹,f1_螺纹; void*f2(),*f1();
#包括
#包括
#包括
int main(){
pthread_t f2_螺纹,f1_螺纹;
void*f2(),*f1();
inti1,i2;
i1=1;
i2=2;
pthread_create(&f1_thread,NULL,f1,&i1);
pthread_create(&f2_thread,NULL,f2,&i2);
pthread_join(f1_线程,NULL);
pthread_join(f2_线程,NULL);
返回0;
}
void*f1(int*x){
int i;
i=*x;
睡眠(1);
printf(“f1:%d”,i);
pthread_退出(0);
}
void*f2(int*x){
int i;
i=*x;
睡眠(1);
printf(“f2:%d”,i);
pthread_退出(0);
}
环境:
- 使用pWinWin32()
的Visual C++ 2008
#include <windows.h>
#include <stdio.h>
#include <pthread.h>
int main() {
pthread_t f2_thread, f1_thread;
void *f2(void*), *f1(void*);
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(void *x){
int* data = static_cast<int*>(x);
int i = *data;
Sleep(1);
printf("f1: %d",i);
pthread_exit(0);
return 0;
}
void *f2(void *x){
int* data = static_cast<int*>(x);
int i = *data;
Sleep(1);
printf("f2: %d",i);
pthread_exit(0);
return 0;
}
#包括
#包括
#包括
int main(){
pthread_t f2_螺纹,f1_螺纹;
无效*f2(无效*),*f1(无效*);
inti1,i2;
i1=1;
i2=2;
pthread_create(&f1_thread,NULL,f1,&i1);
pthread_create(&f2_thread,NULL,f2,&i2);
pthread_join(f1_线程,NULL);
pthread_join(f2_线程,NULL);
返回0;
}
void*f1(void*x){
int*data=static_cast(x);
int i=*数据;
睡眠(1);
printf(“f1:%d”,i);
pthread_退出(0);
返回0;
}
void*f2(void*x){
int*data=static_cast(x);
int i=*数据;
睡眠(1);
printf(“f2:%d”,i);
pthread_退出(0);
返回0;
}
所以
#include <windows.h>
#include <stdio.h>
#include <pthread.h>
int main() {
pthread_t f2_thread, f1_thread;
void *f2(void*), *f1(void*);
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(void *x){
int* data = static_cast<int*>(x);
int i = *data;
Sleep(1);
printf("f1: %d",i);
pthread_exit(0);
return 0;
}
void *f2(void *x){
int* data = static_cast<int*>(x);
int i = *data;
Sleep(1);
printf("f2: %d",i);
pthread_exit(0);
return 0;
}