建了个链接库,声明了void (*function)(int *a);然后function=dlsym(xlib,"function");然后怎么在pthread_create中调用这个function函数?填了好几种方式都出现段错误还有void (*function)(int *);写成void* function(int *),function=dlsym(xlib,"function");这句就会出错,这两个有什么区别?我想在pthread_create中调用function,写成function,(void *)function都不行,出现段错误。
2 回答
眼眸繁星
TA贡献1873条经验 获得超9个赞
原型定义
int pthread_create(pthread_t *restrict tidp,
const pthread_attr_t *restrict attr,
void *(*start_rtn)(void),
void *restrict arg);
第一个参数为指向线程标识符的指针。
第二个参数用来设置线程属性。
第三个参数是线程运行函数的起始地址。
最后一个参数是运行函数的参数。
这样子懂了吧?
qq_花开花谢_0
TA贡献1835条经验 获得超7个赞
void* (function)(argument*) 是一个返回值为void型的函数指针
void* function(argument*)是一个返回值为void 的函数
概念不同
- 2 回答
- 0 关注
- 104 浏览
添加回答
举报
0/150
提交
取消