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?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
谢谢 1)搞明白了;2)中还有个问题如果用指针调用了函数RunMainTask(pMainTask, pSerialPort),这个函数传递的第一个参数pMainTask是指向包含这个函数上一层的结构体,这样操作是为什么呢?
一周热门 更多>