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

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

热度:1233   发布时间:2006-07-24 00:39:05.0
提示: 作者被禁止或删除 内容自动屏蔽

2006-07-23 16:39:05
穆扬

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

2006-07-23 16:42:13
nick_annie

等 级:新手上路
帖 子:105
专家分:0
注 册:2005-11-19
  得分:0 
以下是引用穆扬在2006-7-24 0:39:05的发言:

用心良苦啊
我说行吗?

void * 是一种通俗地说法叫"无类型"的指针
这种指针的特点是
1.只是纯粹的地址
2.没有加法运算(这一点与指向函数的指针相同)
3.没有 * 运算

你说当然OKAY拉
----------------解决方案--------------------------------------------------------
void thread(){
....
}
res=pthread_creat(&id,NULL,(void *) thread,NULL);

thread代表的其实是函数的开始地址。如同数组一样。如
int a[234];
a代表的就是a这个数组的起始地址,也可以理解为&a[0]或&a
同样,(void *) thread 的thread也就是&thread。这是C语言在处理函数、数组、class地址的方式(struct例外)
----------------解决方案--------------------------------------------------------

  相关解决方案