C语言语句分析

2019-07-20 02:41发布

typedef struct IMainTask
{
    void (*RunMainTask)(struct IMainTask* pThis, SerialPortBase* pSerialPort);
    BaseTask* pBaseTask;
} IMainTask;
IMainTask* GetMainTask(const uint8_t* msgs){...}

IMainTask* pMainTask = GetMainTask(msgs);
pMainTask->RunMainTask(pMainTask, pSerialPort);

1)pMainTask是指向IMainTask的,函数GetMainTask(msgs)返回应该是地址值,是把一个地址给了这结构体吗?
2)pMainTask->RunMainTask(pMainTask, pSerialPort); 中pMainTask可以访问RunMainTask?怎么理解 pMainTask又指回了自己IMainTask?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
edmund1234
1楼-- · 2019-07-21 06:41
我觉得这种把一结构体对象的地址作为函数的参数, 是想做到类似C++把数据跟成员函数绑一块的目的吧
lafayet
2楼-- · 2019-07-21 09:26
 精彩回答 2  元偷偷看……
lafayet
3楼-- · 2019-07-21 13:50
 精彩回答 2  元偷偷看……
edmund1234
4楼-- · 2019-07-21 15:04
房子是一定存在的, 只不过经常都不是直接给你这房子的地扯, 而是给了你这房子的是GPS的坐标, 你需要自己动手, 把它转换为房子的地址
lafayet
5楼-- · 2019-07-21 16:47
 精彩回答 2  元偷偷看……

一周热门 更多>