四香油饼 发表于 4-10-2009 23:00:19

有点看不懂,熟悉c的请进

最近在看uC/OS-II, 里面一个函数如下:

OS_STK * OSTaskStkInit(
    void (* task)(void *pd),
    void *pdato,
    OS_TSK *ptos,
    INT16U opt
    );

我不太明白的是 void (* task)(void *pd),这句, (* task)(void *pd)是把pd这个空指针转换成task数据类型的指针吗?为啥前面又声明成void指针呢?

请高人指点下

jameszhou100 发表于 4-10-2009 23:26:58

是一个函数指针的定义,这个函数的返回值是空,输入参数是一个指针(空类型)。

valpa 发表于 4-10-2009 23:33:02

函数指针
把某个函数赋予这个指针后,可以使用task(pd)去调用

四香油饼 发表于 5-10-2009 08:16:01

都是高人啊。俺昨晚后来又查了下资料,确实是函数指针,谢谢大家了
页: [1]
查看完整版本: 有点看不懂,熟悉c的请进