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

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

热度:897   发布时间:2006-07-22 21:47:50.0

受教了


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

我的意思是问(void * )thread这句是不是去指向thread函数,谢谢各位了


----------------解决方案--------------------------------------------------------
(void *) thread 是void *(* func)(void *) 的一个应用实例,怎么对应呢
渴望指教

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

thread应该也是一个函数指针,它指向了(* func)(void *) 。前面的(void *)是进行强制转换,虽然说任何类型的指针都可以转换成(void *)型的,但是强制转换可以避免一般的类型检查。

void *(* func)(void *) //参数类型是(void *)用于接受任何类型的参数;

(void *) thread 是void *(* func)(void *) 的一个应用实例,怎么对应呢?
---------------------------------------------
这个函数指针作为参数就是这样使用的。thread无须显示参数及其参数类型。感觉这个道理和函数指针的初始化道理有点相似,本质上我不清楚到底是否一样,但是形式就差不多。比如初始化下面的函数指针:

//----------Example------------

int *Funtion(int x)
{
//...
}

int (*P_funtion)(int ) = Funtion; //初始化P_funtion函数,直接把函数Funtion指向P_funtion 就OK了;


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

2006-07-22 23:07:50
flyguy

等 级:新手上路
帖 子:26
专家分:0
注 册:2006-7-22
  得分:0 
先谢谢楼上的两位:
下面是我的理解:
1.void * (* func)(void *)
func是一个函数指针,
它指向的函数的参数是void 型的指针
它指向的函数返回的是void 型的指针
2.(void *) thread
将thread函数强制转换为void型的指针
3.对应
这一个参数项只要是一个返回为指针的函数就对应起来了

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

2006-07-23 00:29:03
穆扬

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

2006-07-23 00:33:18
flyguy

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

因为有你,得以进步,thank you


----------------解决方案--------------------------------------------------------
有谁能和我说下void *是一种什么类型?
----------------解决方案--------------------------------------------------------
  相关解决方案