C语言中的“回调”是什么,如何实现?

玩具

根据我的阅读,Core Audio在很大程度上依赖于回调(和C ++,但这是另一回事)。

我了解设置功能的概念(某种程度上),该功能被另一个功能反复调用以完成任务。我只是不了解他们如何设置以及他们如何实际工作。任何示例将不胜感激。

耻辱

C语言中没有“回调”-最多不超过任何其他通用编程概念。

它们是使用函数指针实现的。这是一个例子:

void populate_array(int *array, size_t arraySize, int (*getNextValue)(void))
{
    for (size_t i=0; i<arraySize; i++)
        array[i] = getNextValue();
}

int getNextRandomValue(void)
{
    return rand();
}

int main(void)
{
    int myarray[10];
    populate_array(myarray, 10, getNextRandomValue);
    ...
}

在此,populate_array函数将函数指针作为其第三个参数,并调用它以获取用于填充数组的值。我们已经编写了回调getNextRandomValue函数,该函数返回一个随机值,并将指向它的指针传递给populate_arraypopulate_array将调用我们的回调函数10次,并将返回的值分配给给定数组中的元素。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章