麻烦帮忙看一下下面的例子,是关于指针函数&函数指针的一些问题!求大家帮帮忙!

怎么理解一下句子:
1,extern void run(void (*ptask)());
2,void run(void (*ptask)())

{
(*ptask)();
}
3,void (* code task[])() = {task0,task1,task2,task3};
4,

while(1)
{
for(i=0;i<MAX_TASK;i++)
if (task_delay[i]==0) {run(task[i]); break;}
}

慕斯王
浏览 400回答 2
2回答

幕布斯6054654

1,extern void run(void (*ptask)()); //一个外部函数run,他的参数是函数指针ptask,ptask的类型是无参数无返回值的函数指针2,void run(void (*ptask)()) //run函数的定义,调用函数指针ptask所指向的函数。{(*ptask)();}3,void (* task[])() = {task0,task1,task2,task3}; //函数指针数组task, 应该去掉code4,while(1){for(i=0;i<MAX_TASK;i++)if (task_delay[i]==0) {run(task[i]); break;} //循环将task数组中的值传递给run函数}
打开App,查看更多内容
随时随地看视频慕课网APP