gpt4 book ai didi

c - C 中的 "callback"是什么,它们是如何实现的?

转载 作者:太空狗 更新时间:2023-10-29 16:14:19 24 4
gpt4 key购买 nike

根据我所做的阅读,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 次并将返回值分配给给定数组中的元素。

关于c - C 中的 "callback"是什么,它们是如何实现的?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/142789/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com