打印

关于ucos-ii中的任务建立的参数问题

[复制链接]
1637|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ldk060|  楼主 | 2012-7-8 11:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
airwill| | 2012-7-9 20:10 | 只看该作者
是的. 这个参数代表一个函数指针
void( *task)(void *pd)
应该这么解释吧, void 的 pd 指针强制为 返回 void 类型的函数指针.

使用特权

评论回复
板凳
john_lee| | 2012-7-10 03:01 | 只看该作者
这样看,一个函数指针,与它指向的函数的原型,区别是“指针名”是“函数名”前加*,然后用圆括号括起。
例如:
void task(void*);      // 函数原型,函数名为 task。
void (*task)(void*);   // 函数指针,指针名为 task。
不管是函数原型或函数指针在声明和/或定义时,函数类型的参数是可省略的,所以:
void (*task)(void*) 和 void (*task)(void* pd) 是一样的。

使用特权

评论回复
地板
Breming| | 2012-7-10 16:08 | 只看该作者
void 修饰变量时表示它的类型为任意,括号外边的void表示函数指针变量的类型为任意,括号里面的void表示任意类型的指针作为参数。。。。。。

使用特权

评论回复
5
ningling_21| | 2012-7-12 20:33 | 只看该作者
强制转换为指向任务的函数名...

使用特权

评论回复
6
haydon| | 2012-7-24 12:55 | 只看该作者
mk

使用特权

评论回复
7
yyql008| | 2012-7-26 08:54 | 只看该作者
二楼说的貌似不对啊.
pd不是被强制了,而是被指向的函数所带的参数.
void (*task)(void*)
这样理解:task是个指向函数的指针,该函数带个void*参数,返回值为void

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

344

帖子

0

粉丝