当前位置: 代码迷 >> C语言 >> 理解void *(*func)(void *)?
  详细解决方案

理解void *(*func)(void *)?

热度:887   发布时间:2006-07-22 17:22:24.0
理解void *(*func)(void *)?
int pthread_create(pthread_t *id,pthread_attr_t *attr,void *(*func)(void *),void *arg);

pthread_t *id: 这个指针是指向ID的

pthread_attr_t *attr:这个指针是指向Pthead_attr_t 这个结构体类型的变量;这个变量可以用来存放
线程的各种属性;创建线程时可以定义这样一个变量来初始化。
如果使用系统缺省值,则设为null.

void *(*func)(void *):这是个指向函数地址的指针,指向线程开始执行的函数的地址。

简单的理解:这个项是一个指针,它指向的是一个起始函数的地址
这个起始函数的地址由func确定,即fun返回的是一个指针(起始函数
的地址)
void *arg:这个指针指向的是func函数的参数,参数有多个的话,可将参数打包成一个结构体。

返回值: 正确:0;错误: 正Exxx值。不设置ERRNO
?????????????帮我理解一下红色部分,thank you!
搜索更多相关的解决方案: func  void  

----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-22 09:26:09
flyguy

等 级:新手上路
帖 子:26
专家分:0
注 册:2006-7-22
  得分:0 

后面的void * 是func指向的函数的形参吗?
不是func函数自己的形参?


----------------解决方案--------------------------------------------------------
func只是一个指针!
----------------解决方案--------------------------------------------------------

现在有下面的语句:
void thread(){
....
}
res=pthread_creat(&id,NULL,(void *) thread,NULL);

这个 thread怎么理解?
是理解成void 类型的指针指向 thread函数吗?

谢谢指教、、、


----------------解决方案--------------------------------------------------------

能不能告诉我你对
void *(* func)(void *)
的理解,thank you


----------------解决方案--------------------------------------------------------
(void *) thread 我认为这是强制类型转换

对 void *(* func)(void *) 的理解和二楼一样

func是一个 指向 形参为 void* 返回值为 void* 的函数的指针.
----------------解决方案--------------------------------------------------------
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-22 10:25:16
穆扬

等 级:禁止发言
帖 子:1910
专家分:0
注 册:2006-6-1
  得分:0 
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-22 10:36:04
lj_860603

等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
  得分:0 
函数指针而已,后面省略了参数名,参数类型 void * 型。
----------------解决方案--------------------------------------------------------
  相关解决方案