当前位置:  技术问答>linux和unix

pthread_create编译错误

    来源: 互联网  发布时间:2016-06-03

    本文导语:  我在类的某一个方法里创建线程如下: int ret_val=pthread_create(&pt,NULL,prefun,x);     if(ret_val!=0){         printf("Create pthread fail.n"); 其中,prefun是我在该类的.h文件中声明的一个函数 具体如下: public:     void* prefun...

我在类的某一个方法里创建线程如下:
int ret_val=pthread_create(&pt,NULL,prefun,x);
    if(ret_val!=0){
        printf("Create pthread fail.n");

其中,prefun是我在该类的.h文件中声明的一个函数 具体如下:
public:

    void* prefun (void* arg);
在.cpp文件中实现:
void * SSVector::prefun (void* arg){
     。。。。
}
但是编译出错:
src/ssvector.cpp:856: error: argument of type ‘void* (soplex::SSVector::)(void*)’ does not match ‘void* (*)(void*)’

|


是下面这样


intret_val=pthread_create(&pt,NULL,(void(*)(void*))SSVector::prefun,NULL);

|

楼主注意了,thread_create中第3个参数的格式是 void *func(void *),楼主可以在thread_create()所在的代码中声明
一个非类成员函数prefun,在prefun函数中再调用* SSVector::prefun (void* arg)

例如如下的代码:
pthread_create( &tids[i], NULL, start, this);
start函数中又调用了一个类成员函数
void* start(void *arg)
{
( (CCrawl*)arg )->fetch(arg);
}

    
 
 
 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Linux里的pthread_create会不会阻塞啊?
  • 关于pthread_create函数的问题
  • pthread_create的问题
  • pthread_create函数执行问题
  • 无法使用pthread_creat()函数的问题
  • 请问:linux下如何将一个类的指针作为参数传给pthread_create创建的线程?
  • 有关使用pthread_creat时的参数传递问题!!!
  • pthread_create 的问题 ,求救大家!!!
  • linux下进程和线程的区别(fork(),pthread_create())?
  • REDHAT7.2提示:undefined reference to "pthread_create"
  • 请问:为什么我在守护进程里面用pthread_create来启动线程,经常会卡在那里阿?
  • pthread_create 为何报 Segmentation fault?
  • ★pthread_create 与 thr_create的区别是什么?★
  • 求助!!undefined reference to 'pthread_create'
  • pthread_create创建线程问题
  • 急!同一个c文件里vfork();pthread_create();两个函数,Makefile该怎么写?谢谢
  • No manual entry for pthread_create,我安了manpages-dev和glibc-doc
  • 为什么pthread_create创建线程出错.有完整代码,哪儿错了,大家给试试.
  • pthread_create函数返回值问题
  • pthread_create传给执行函数的变量能不能有多个?


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3