littlefish 发表于 2016-1-8 18:38:59

求大神赐教CSR芯片ADK代码message定义中两个结构体定义理解???

请问哪位大神能够赐教下图两个结构体定义的理解? 是CSR8670芯片ADK中的代码,位于message_.h的头文件定义中,困扰小弟挺久的了。真心无法理解这两个结构体的定义怎么关联上的?跪求大神赐教!!!!!



littlefish 发表于 2016-1-8 18:39:33

求大神帮忙!!!!

LXQ 发表于 2016-1-9 11:38:05

:):):):):):):):):):):):):)

force_miao 发表于 2016-1-9 11:57:46

Task就是一个结构指针,指向了TaskData结构而已

★奥●义★ 发表于 2016-1-10 23:14:51

Task是指向结构体TaskData的指针,
TaskData结构体里的成员是个函数指针,此函数指针可以指向消息处理函数,用于关联(or绑定)xxxtask任务和xxxhandler函数。
消息传递和处理函数的参数长的一样,但里面的Task(理解的)含义不一样。
消息传递的Task最终指向处理函数本身,可以理解为函数调用(or跳转);
处理函数的Task是你具体定义的一个结构体参数,可以(自己增加)包含此任务的一些状态。
个人理解

★奥●义★ 发表于 2016-1-10 23:18:39

★奥●义★ 发表于 2016-1-10 23:14
Task是指向结构体TaskData的指针,
TaskData结构体里的成员是个函数指针,此函数指针可以指向消息处理函数 ...

鸡生蛋,蛋生鸡。可以看看数据结构。

littlefish 发表于 2016-1-11 11:51:40

★奥●义★ 发表于 2016-1-10 23:14
Task是指向结构体TaskData的指针,
TaskData结构体里的成员是个函数指针,此函数指针可以指向消息处理函数 ...

你好,非常感谢你的解答,让我略微理解了一些。但是我还是有一些困惑:
1、如果Task是指向结构体TaskData的指针,那TaskData结构体指针的定义(Task)可以出现在TaskData结构体定义的前面吗?
2、根据你的描述,不知道我的理解是否正确:你是否觉得处理函数里面的Task是为了调用除自身处理函数以外的其他处理函数?而消息传递的Task只是单纯的调用某一个处理函数到消息队列中?
烦请帮忙解释,十分感谢!

littlefish 发表于 2016-1-11 11:52:20

★奥●义★ 发表于 2016-1-10 23:18
鸡生蛋,蛋生鸡。可以看看数据结构。

高手能否指点一、二?

pkuzhx 发表于 2016-1-18 14:04:31

到底先有鸡还是先有蛋,我也刚开始学,一直搞不懂啊

pkuzhx 发表于 2016-1-18 17:36:49

貌似他俩就是相互定义的
页: [1] 2 3
查看完整版本: 求大神赐教CSR芯片ADK代码message定义中两个结构体定义理解???