高手请指教:typedef void (* PFNNOTIFY)(void * pData)

iwangdy 2003-10-02 12:56:35
typedef void (* PFNNOTIFY)(void * pData)
这个怎么讲
...全文
105 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
lemon520 2003-10-02
  • 打赏
  • 举报
回复
typedef void (* PFNNOTIFY)(void * pData)
定义一个函数指针类型!
该指针指向一个“返回值为void,参数为void类型的指针”的函数。
写了
typedef void (* PFNNOTIFY)(void * pData) 这句话后,PFNNOTIFY就是一个类型,可以
用来定义变量了。
如: PFNNOTIFY ptr; //ptr就是一个这种类型的指针,可以指向任何一个满足条件的函数。



yjf7888 2003-10-02
  • 打赏
  • 举报
回复
回复人: plusir(淹死的鱼) ( ) 信誉:99 2003-10-02 11:55:00 得分:0


这个题小弟有不明白的地方,如果按我的解释,void (* PFNNOTIFY)(void * pData);就可以了,为什么前面还要加一个typedef,有高人解释一下吗
---------------------------------------------------------
void (* PFNNOTIFY)(void * pData);//声明一个用来指向函数的指针变量PFNNOTIFY

typedef void (* PFNNOTIFY)(void * pData);//定义一种指针类型,用法见Jinhao(辣子鸡丁)的回复。
还有用在强制类型转换的地方比较方便。如:
void fun(int *b)
{
cout<<"abc";
}

void fun2(PFNNOTIFY route)
{
route(NULL);
}

int main()
{
fun2((PFNNOTIFY)fun);
}


Jinhao 2003-10-02
  • 打赏
  • 举报
回复
上面那个a(0);就等于 fun(0);
Jinhao 2003-10-02
  • 打赏
  • 举报
回复
看这个
typedef void (* PFNNOTIFY)(void * pData);

void fun(void *b)
{
cout<<"abc";
}

int main()
{
PFNNOTIFY a=fun; //在前加了typedef之后,定义一个这样的函数指针就可以象这句,很方便的随处定义;如果不加typedef那么,PFNNOTIFY自身就是函数指针,他就不可能象这样方便地再定义一个函数指针
a(0);
}
plusir 2003-10-02
  • 打赏
  • 举报
回复
这个题小弟有不明白的地方,如果按我的解释,void (* PFNNOTIFY)(void * pData);就可以了,为什么前面还要加一个typedef,有高人解释一下吗
cgsw12345 2003-10-02
  • 打赏
  • 举报
回复
同意:plusir(淹死的鱼)
hongfeeling 2003-10-02
  • 打赏
  • 举报
回复
定义一个函数指针类型,该类型的指针指向的函数,返回值是void,参数表是void* pData.
akiko 2003-10-02
  • 打赏
  • 举报
回复
typedef void (* PFNNOTIFY)(void * pData);
定义一个函数指针类型,该类型的指针指向的函数,返回值是void,参数表是void* pData.以后可以
PFNNOTIFY p;//定义函数指针变量
TianGuangZao 2003-10-02
  • 打赏
  • 举报
回复
讲定义一个指针的都是错误的。
明显是定义一种新的数据类型吗!
这是一种指针类型。就如同我们平时熟悉的 int 类型,char 类型。
准确的讲这是一种指向函数的指针类型。

PFNNOTIFY ptr;
这才是定义一个指针。
hu1hao2 2003-10-02
  • 打赏
  • 举报
回复
typedef用来定义用户自定义的类型,上面的一段为指针数据类型,定义该类型可以使程序得到简化,可读性增强.csdn开发高手有一篇文章就是讲这个,你可以看看.
firedevil 2003-10-02
  • 打赏
  • 举报
回复
关键是typedef,用它来定义新类型
可以使程序简化
Benny1 2003-10-02
  • 打赏
  • 举报
回复
自定义一个指向含有一个参数void*类型的函数的指针,该函数返回类型为void
金笛子 2003-10-02
  • 打赏
  • 举报
回复
自定义一个指针数据类型,该类型指针指向一个函数
plusir 2003-10-02
  • 打赏
  • 举报
回复
定义一个指针变量,变量的名字是PFNNOTIFY,它的类型是函数指针,也就是说它只能指向函数,其它的定义它指向函数的原型,也就是它能指向什么样的函数,void (* PFNNOTIFY)(void * pData)表明它只能指向接收void*类型不返回结果的函数,比如:void a( void * )
TianGuangZao 2003-10-02
  • 打赏
  • 举报
回复
定义一个指针数据类型,该类型指针指向一个函数,其它同上。
simclock 2003-10-02
  • 打赏
  • 举报
回复
定义一个函数,指向这个函数的指针是PFNNOTIFY,这个函数无返回值,参数为void *pData
SimplyBest 2003-10-02
  • 打赏
  • 举报
回复
指向函数的指针

69,337

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧